Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Поведение ADOConnection в многопоточном приложении   Найти похожие ветки 

 
Ega23 ©   (2005-11-09 12:11) [40]


> Если основной коннект будет делать запросы из той же таблицы,
>  которая апдейтится другим коннектом, то MS SQL сам тебя
> тормознет на время выполнения транзакции обновления (т.е.
>  селект не выполнится пока апдейт не закончится


Низачот. Это всё регламентируется Isolation Level"ом. Я могу и "грязное чтение" делать (собственно, я его и делаю). For Browse которое.


 
ANB ©   (2005-11-09 12:21) [41]

Таки выходит, что отдельные потоки на одном коннекте все равно ничего не дадут. Т.к. фактически именно коннект будет все делать, а остальным потокам, которые встали позже, придется ждать тапок. А расчет времени для последовательных апдейтов делали ? Если ты сможешь убрать блокировку на одновременный апдейт одной таблицы, то для параллельности придется для каждого потока заводить свой коннект. А потоки придется делать для каждого датчика. Это некузяво, ИМХО.


 
Ega23 ©   (2005-11-09 12:25) [42]


> Таки выходит, что отдельные потоки на одном коннекте все
> равно ничего не дадут. Т.к. фактически именно коннект будет
> все делать, а остальным потокам, которые встали позже, придется
> ждать тапок. А расчет времени для последовательных апдейтов
> делали ? Если ты сможешь убрать блокировку на одновременный
> апдейт одной таблицы, то для параллельности придется для
> каждого потока заводить свой коннект. А потоки придется
> делать для каждого датчика. Это некузяво, ИМХО.


Ты, по-моему, куда-то не туда полез.
В принцине, sniknik ©   в [34] и [35] посоветовал достаточно красивое решение проблемы. Сейчас будем пробовать.


 
root ©   (2005-11-09 13:57) [43]

если одна база  ито RemoteDataModul  там все это реализованно

ядумаю отсюдаплесать надо


 
Ega23 ©   (2005-11-09 15:36) [44]

В общем так.
По совету sniknik © сделали запрос параметризованным и перешли там, где критично с ADOQuery на ADOCommand и ADODataSet.
Результаты ошеломляющие - такт системы сократился с 300 мс до 1,5 мс. Т.е. в 200 РАЗ!!!

sniknik ©, с меня при встречи много пива! ОГРОМНОЕ СПАСИБО!


 
WondeRu ©   (2005-11-09 16:57) [45]

Ega23 ©   (08.11.05 17:28) [2]
у дополнительного потока всё-таки СВОЙ коннект, или нет?

свой!


 
Slym ©   (2005-11-10 13:51) [46]

Если не требуется возвращать результат запроса то решение: 1! поток с очередью.
В очередь ставишь строку SQL и массив параметров.
или более предпочтительный вариант: поток знает все запросы  (для каждого свой компонент создан) и только параметры подставляй.

в потоке выбираешь очередь и постишь в базу.

Ega23 ©   (09.11.05 15:36) [44]
сократился с 300 мс до 1,5 мс.

если строка SQL не меняется ты ей еще Prepare сделай


 
Ega23 ©   (2005-11-10 16:05) [47]


> если строка SQL не меняется ты ей еще Prepare сделай


меняется.


 
ANB ©   (2005-11-10 17:47) [48]


> Ega23 ©   (10.11.05 16:05) [47]

А набор запросов на апдейт фиксированный ?


 
Ega23 ©   (2005-11-11 10:49) [49]


> А набор запросов на апдейт фиксированный ?
>


Не понял.


 
ANB ©   (2005-11-11 16:36) [50]


> Ega23 ©   (11.11.05 10:49) [49]

В смысле - количество вариантов запроса - конечное число ?


 
Ega23 ©   (2005-11-11 17:17) [51]


> В смысле - количество вариантов запроса - конечное число
> ?


В данный момент - да, но система в любой момент может расшириться.


 
ANB ©   (2005-11-11 17:23) [52]


> Ega23 ©   (11.11.05 17:17) [51]

Я к тому, что можно завести массив кверей (по одной на каждый вариант апдейта) и каждую пропрепарить. Хотя я наступал на грабли с препаре, но это было оракл + одак. Плюс я его зря делал.


 
Ega23 ©   (2005-11-11 17:33) [53]


> Я к тому, что можно завести массив кверей (по одной на каждый
> вариант апдейта) и каждую пропрепарить. Хотя я наступал
> на грабли с препаре, но это было оракл + одак. Плюс я его
> зря делал.
>


Да уже всё и так нормально.



Страницы: 1 2 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.042 c
3-1131823923
dj0n
2005-11-12 22:32
2006.01.01
Подскажите пожалуйста, как содержимое таблици Paradox можно петен


1-1133506111
Михаил_
2005-12-02 09:48
2006.01.01
Создание окон с отдельными кнопками на панели задач


2-1134754551
Silica
2005-12-16 20:35
2006.01.01
Кто-нибудь объясните пожалуйста код...


2-1134413280
Nikos
2005-12-12 21:48
2006.01.01
Ошибка при компиляции


2-1134687534
crazycorpse
2005-12-16 01:58
2006.01.01
Динамический массив n x m