|
|
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
YuRockпараметры нужны потоку перед началом работы Параметры запросов не часть бизнес-логики клиента БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 17:30 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
Док Не находишь, что вопрос про "как вы передаете параметры запроса в поток" превратился в "как вы передаете параметры в конструктор класса"? З.Ы. Может есть возможность решить проблему на уровне общей архитектуры: перевести датасеты в асинхронный режим, а потоки оставить там, где они действительно нужны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 17:43 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
stanilarНе находишь, что вопрос про "как вы передаете параметры запроса в поток" превратился в "как вы передаете параметры в конструктор класса"? нет, первое - частный случай второго. Именно он меня и интересует. stanilarперевести датасеты в асинхронный режим, а потоки оставить там, где они действительно нужны? мне не нужны параллельные вычисления. Мне нужен "незамерзающий" гуй. Вся бизнес-логика заключается в частом одномоментном сохранении большого объема данных в БД, которое порой занимает довольно ощутимый промежуток времени. YuRockОчевидно, у каждого своё представление о наглядности) сейчас, просматривая свой код 5-7 летней давности, я иногда называю себя нехорошими словами, как будто он код писан другим человеком :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 19:12 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
stanilarYuRockпараметры нужны потоку перед началом работы Параметры запросов не часть бизнес-логики клиента БД?В том-то и дело. Но вводятся-то они в другом потоке по любому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 20:40 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
Докпервое - частный случай второго Нет. Но спорить не буду. Докчастный случай второго. Именно он меня и интересует Ну и зачем тут потоки? Докбизнес-логика заключается в частом одномоментном сохранении большого объема данных в БД Может скинуть во временные файлы (винда их сама умеет удалять) и передать стороннему приложению для записи в БД? А то ведь создается впечатление, что ты идешь очень опасным путем, играясь с экспериментальным компилятором, с неоднозначной реализацией потоков в разных ОС(ты ведь не пользуешь WINE для порта виндового исходника программы в линух), в которых экспериментальным отладчик может и не показать тебе ошибку, так еще и игнорируешь опыт тех, кто уже шел до тебя: Lazarus: коннект в потоке совет №3 (Таки вместе задачи решать веселее, особенно с профессиональным коллегой). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 22:44 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
stanilarМожет скинуть во временные файлы (винда их сама умеет удалять) и передать стороннему приложению для записи в БД? я уже пытался в основном потоке писать изменяемые данные в GTT и в пишущей транзакции сохранять их в базе - все равно долго. Думаешь время записи-чтения на/с винта будет меньше? И потом, надо будет заморачиваться с проверкой прав на временную папку (и это, как минимум в двух ОСях) и/или проверкой свободного места на диске. Нафиг. stanilarА то ведь создается впечатление, что ты идешь очень опасным путем, играясь с экспериментальным компилятором, с неоднозначной реализацией потоков в разных ОС я просто экспериментирую, ибо не имел раньше опыта. Все, что пишется мне в ответах, я внимательно читаю. Про сторонний код я уже говорил. Я даже бесплатный wadman'овский безопасный код выпилил из своих ранних исходников, как только немного разобрался с кухней доп.потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 01:28 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
Док Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. а откуда брать коннект? куда записывать результаты выполнения запроса и ошибки? зы читаю этот топик, топик по ссылке в первом посте и некоторые рядом, и чет офигеваю как тут все сложно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 07:55 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгенийчет офигеваю как тут все сложно ничего сложного нет, достаточно немного абстрагироваться от привычной схемы коннекта. В доп.поток передается мемори датасет (посредством чего данные возвращаются в основной поток) и параметры коннекта и запроса, все остальное создается в доп.потоке в runtime :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 09:17 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
коннект создается каждый раз? про сложность это я имел ввиду терки в нескольких топиках про многопоточность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 10:18 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгенийконнект создается каждый раз? да: каждый раз на insert-update-delete Дегтярев Евгенийтерки в нескольких топиках законы жанра как бэ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 15:39 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
Док, авторда: каждый раз на insert-update-delete в хп может вынести? я у себя в одной программе понаблюдал за запросами, которые сам же и делал, и утащил сразу 5 запросов в одну хп. по скорости не мерял, но код стал явно лучше и чище. скорее всего и скорость улучшилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 18:24 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
makhaonв хп может вынести? а смысл? Те же n-цать запросов я могу и на клиенте в одну процедуру затолкать... Собственно, я для себя уже определился. Тему можно считать исчерпанной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 22:16 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
Дока смысл? Те же n-цать запросов я могу и на клиенте в одну процедуру затолкать...Ну, смысл большой. Сервер откомпилирует ее как одно целое один раз заранее. А не будет компилировать n-цать запросов каждый раз. Плюс не будет накладных расходов на кучу сетевых запросов. Будет намного быстрее. Если запросы быстрые (как и должно быть) - может быстрее в разы, а то и на порядки (зависит от n, сети, скорости компиляции и выполнения запросов, размера базы...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 02:18 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
ДокДегтярев Евгенийконнект создается каждый раз? да: каждый раз на insert-update-delete не накладно будет для сервера на каждый запрос поднимать и тушить соединение? если запросы не по минуте выполняются, я бы держал отдельно открытое соединение и передавал его в поток. если потоков несколько, то в идеале пул коннектов ДокДегтярев Евгенийтерки в нескольких топиках законы жанра как бэ... да просто поразился масштабам, в свое время на делфи многопоточкой не интересовался, поэтому не в теме сейчас на go, для синхронизации достаточно пары примитивов, правда там без gui ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 07:15 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений, делфёвые циклы, к слову, распарраллеливаются в две-три строки кода. если тело циклов может работать как многопоточное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 09:40 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
makhaon, а мжно пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 10:42 |
|
||
|
Lazarus: выборка в потоке
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений, ну, например, многопоточное чтение файлов у меня: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. EnsureSliceOpened - довольно некислая процедура, тысяч в 20 строк. паресер довольно толстый + обвязка. Ускорилось раз в 6-7 на i7-м. Библиотеку я уже не единожды кидал, ищи. Библиотека довольно компактная. В новых средах есть встроенная аналогичная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 14:53 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39624525&tid=2041061]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 535ms |

| 0 / 0 |
