powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite 3 Update Limit
11 сообщений из 11, страница 1 из 1
SQLite 3 Update Limit
    #37581373
Alex NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте.

Вот целый день маюсь с проблемой...
Имееться Программа на сишарп и модуль sqlite-netFx35-binary-bundle-Win32-2008-1.0.77.0

Программа работает в несколько потоков с одной таблицей, и каждый поток должен получать из таблици одну запись

Хотель решить проблему с помощю запроса
Код: sql
1.
"UPDATE list SET status=\"used" + ThreadID + "\" WHERE status=\"ok\" LIMIT 1"


А потом уже взять эту запись для этого потока
Код: sql
1.
"SELECT * FROM list WHERE status=\"used" + ThreadID + "\""



Проблема в том, что LIMIT при UPDATE по умолчанию отключен....

Довольно долго ломаю голову... Может у кого-то есть идеи как решить проблему?

Как включить LIMIT нигде не написано, точнее написано, что нужно скомпилить с этой опцией....
...
Рейтинг: 0 / 0
SQLite 3 Update Limit
    #37581448
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex NEВот целый день маюсь с проблемой...
....
Программа работает в несколько потоков с одной таблицей, и каждый поток должен получать из таблици одну запись
Не надо маятся. Надо сначала ответить:
Если я поток А, какую запись я должен получить?
А я поток Б, какую запись я должен получить?
А вот пришел поток В, какую запись он должен получить?
Вот когда ты сможешь сказать как различить между собой две записи, как ответить какая из них какому потоку принадлежит - тогда ты увидишь что слово LIMIT вообще не нужно.

Слово LIMIT вообще никогда не нужно. Если ты считаешь что оно для чего-то нужно - то ты неправильно читаешь данные. Нет на свете задач требующих LIMIT.
...
Рейтинг: 0 / 0
SQLite 3 Update Limit
    #37581463
Alex NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет нет, тут записи не разделены на потоки! Ви видимо не поняли зачем вобще в програме потоки.
Так вот в моем случае количество потоков определяет скорость обработки данных.

В таблице все записи относяться к каждому потоку, и каждый поток должен получить запись, которая не была предоставленна для другого потока, и обработать эти данные .....

вот и проблема.. Количество потоков Динамичное, их может быть 5 а может и 50. Это зависит насколько быстро надо обработать данные. Нагрузки на проц при этом не столь важны, важно обработать это всё...

Да и я уже забросил SQLite, ищу решения в другими способами...
...
Рейтинг: 0 / 0
SQLite 3 Update Limit
    #37581477
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex NEнет нет, тут записи не разделены на потоки! Ви видимо не поняли зачем вобще в програме потоки.
Так вот в моем случае количество потоков определяет скорость обработки данных.Скорость обработки данных увеличением количества потоков не поднять.
У тебя в любом случае всего один процессор. Если у тебя один поток - весь процессор занят этим одним потоком. Если два потока, то процессор почитает один поток, потом заморозит его, начнет считать другой поток. Потом заморозит второй и начнет считать первый. И так далее... Паралелльно потоки будут считаться только если процессоров много. Но опять - количество процессов можно поднимать только до тех пор пока процессоров будет хватать. После этого увеличение числа потоков это уменьшение производительности.
Учи матчасть.
...
Рейтинг: 0 / 0
SQLite 3 Update Limit
    #37581503
Alex NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Нет, вы не правы! Вы же не знаете всей ситуации. В каждом потоке и так идут задержки для обработки одной строки базы.
В Каждой строке базы храняться данные Что Как И кудой их обработать. Имменно эта обработка занимает время И не грузит процесор. Иммено поетому обработка в несколько потоков ефективнее! Увы Но это проверено мною В предыдущих версиях программы!
...
Рейтинг: 0 / 0
SQLite 3 Update Limit
    #37581521
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
White OwlСлово LIMIT вообще никогда не нужно. Если ты считаешь что оно для чего-то
нужно - то ты неправильно читаешь данные. Нет на свете задач требующих LIMIT.

Ну да, конечно :)
авторПрограммист не приходит на работу - день, два, неделю.
Коллеги и начальство в ужасе и бешенстве: на телефон он также не отвечает.
Приехали, взломали дверь, а программист стоит под душем и моет, моет, моет
голову - на бутылочке от шампуня прочёл алгоритм "Нанести шампунь на
волосы, смыть, повторить"

Обычно LIMIT + OFFSET используются в целях постраничного вывода. Также LIMIT нужен при построении различных очередей и стэков - для выборки одного или нескольких элементов.
...
Рейтинг: 0 / 0
SQLite 3 Update Limit
    #37581535
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex NEВ Каждой строке базы храняться данные Что Как И кудой их обработать. Имменно эта обработка занимает время И не грузит процесор.Ага, Святой Дух вам делает расчеты. Конечно-конечно.

Alex NE Иммено поетому обработка в несколько потоков ефективнее! Увы Но это проверено мною В предыдущих версиях программы!Во первых воспользуйся орфографическим словарем, тебя читать неприятно. Во вторых почини клавиатуру и не делай случайных больших букв. В третьих, ты так и не ответил чем запись для одного потока отличается от записи для другого потока.
...
Рейтинг: 0 / 0
SQLite 3 Update Limit
    #37581537
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGОбычно LIMIT + OFFSET используются в целях постраничного вывода.Используются, не означает что они необходимы. Любой постраничный вывод можно сделать нормальными запросами. Надежней это будет, чем почти гарантированная потеря или повторное получение строк при использовании limit+offset.

MBGТакже LIMIT нужен при построении различных очередей и стэков - для выборки одного или нескольких элементов.А зачем строить очереди и стэки в изначально кортэжной парадигме? Но если очень хочется - курсоры и сортировка по потенциальным ключам всегда спасут.
...
Рейтинг: 0 / 0
SQLite 3 Update Limit
    #37581878
Alex NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Во-первых, я обратился сюда за помощу.
Во-вторых, я писал сообщение ночью и был уставший, мне как-то небыло дела до правильности написания. Не нравиться, не читай!
Во-третьих, шол бы ты куда подальше!

Всем спасибо, решение найдено, тема ЗАКРЫТА!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
SQLite 3 Update Limit
    #38227024
3-14159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex NE сишарп и модуль sqlite-netFx35-binary-bundle-Win32-2008-1.0.77.0
.
извиняюсь
я правильно понял, для того, чтобы использовать скллайт с сишарпом, отсюда

http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
надо скачать для заданного номера фреймворка заданный бандл (bundle)?
...
Рейтинг: 0 / 0
SQLite 3 Update Limit
    #38227047
3-14159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl Любой постраничный вывод можно сделать нормальными запросами. Надежней это будет, чем почти гарантированная потеря или повторное получение строк при использовании limit+offset.


нормальные запросы это тут описаны или есть более нормальные?

http://www.sql.ru/forum/actualthread.aspx?tid=134559
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite 3 Update Limit
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]