Вниз
Скачать: CL | DM;

Чисто теоретический вопрос   Найти похожие ветки 

 
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, пока это достаточно сложно и наверно потребует дополнительной настройки у пользователя. для ускорения и удобства проще запросы продумывать лучше :)



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
3-66758
Sheva
2002-02-21 12:17
2002.03.21
Dos-Win кодировки.


14-67011
oblom
2002-02-05 14:51
2002.03.21
Максимальное ускорение запуска windows


3-66786
AAAPLE
2002-02-22 14:19
2002.03.21
DBGrid и Query


1-66820
Eco
2002-03-07 09:01
2002.03.21
Закрытие модального окна


6-66944
netter
2002-01-07 13:29
2002.03.21
Workgroup обычно




   Наверх