Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];




Вниз

Чисто теоретический вопрос 


Merlin   (2002-02-21 01:46) [0]

Такой тест:
1. Открываем одну сессию к какой-то базе
2. даем один навороченный SQL запрос к базе, который (сам запрос) выполняется, скажем, 3 секунды (ну, очень навороченный :)
3. даем второй навороченный SQL запрос к базе, который выполняется, скажем, 2 секунды.
Если эти два SQL запроса расположить в программе друг за другом, то, понятно они будут выполняться последовательно.
А теперь внимание вопрос :) если я создаю 2 потока в которых эти два вышеописанных запроса запускаются одновременно. Напоминаю, у нас только одна открытая сессия.

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



Suntechnic   (2002-02-21 05:00) [1]

>Merlin © (21.02.02 01:46)
TDatabase это НЕ потоко безопасный класс. И если ты хочешь последующего секса, то можешь конечно делать и так. Тут встречались товарищи, аргументы которых сводились к следующему: "я так делал и у меня всё работало..." Это всё равно что сообщить всему люду, что всю жизнь бегал на красный свет и до сих пор ещё жив. Что произойдёт сказать достаточно трудно. Скорее всего в один прекрасный момент поймаешь исключение. По крайней мере, если авторы VCL настаивают на использовании TSession для каждого потока отдельно, то я бы к ним прислушался.



EAlexander   (2002-02-21 10:54) [2]

если БД - Oracle, то все запросы от одной сессий выполняются последовательно независимо от того как это в программе.



panov   (2002-02-21 10:58) [3]

>EAlexander © (21.02.02 10:54)
уточню(про ORACLE): если не используется MTS...



EAlexander   (2002-02-21 11:14) [4]

to panov
это да, только реально это MTS кто-нибудь использует. IMHO, пока это достаточно сложно и наверно потребует дополнительной настройки у пользователя. для ускорения и удобства проще запросы продумывать лучше :)




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.061 c
1-66850           DR                    2002-03-05 14:36  2002.03.21  
Как прервать загрузку TWebBrowser а на 30 процентах


1-66812           Olfi                  2002-03-06 18:44  2002.03.21  
Как узнать, есть ли на строке символ


6-66946           Surf                  2002-01-07 11:15  2002.03.21  
Читать всем кому интересно про ESockError и иже с ним.


14-66981          Mike_Goblin           2002-01-27 18:09  2002.03.21  
Кто смотрел кино


1-66905           stikr                 2002-03-06 10:33  2002.03.21  
Можно ли перевести *.DFM (D6) в *.DFM (D5) ????