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

Вниз

Выполнение двух запросов одновременно ?   Найти похожие ветки 

 
Slaga ©   (2005-03-02 12:30) [0]

Добрый день, у меня такой вопрос:

Я пишу приложения для отображения данных из Oracle, для этого пользуюсь компонентами DirecOracleAccess, и я столкнулся с такой ситуацией:

делаю в главной программе два потока, которые одновременно делают каждый запрос в БД через TOracleDataSet которые подключены к OracleSessioг, и тут я наткнулся на то что они не выполняются одновременно, а ждут друг друга и выполняются последовательно, сначала 1-й запрос из первого потока, потом 2-й запрос из второго запроса.

Вообщем из-за этого теряется всякий смысл многопоточности, может это как-то можно изменить, что сделать чо б 2 запроса выполнялись одновременно (запросов может быть и не 2 а 10)


 
Sergey_Masloff   (2005-03-02 12:41) [1]

1) А сессионов у тебя сколько?
2) У тебя многопроцессорная машина на клиенте? Если нет то ты со своими потоками получишь не ускорение а тормоза по сравнению с последовательным выполнением.


 
Danilka ©   (2005-03-02 12:53) [2]

[1] Sergey_Masloff   (02.03.05 12:41)
Если основные временные затраты идут на ожидание ответа сервера, то возможно и ускорение на клиенте. :)


 
Slaga ©   (2005-03-02 12:54) [3]

1) Сессион дин
2) Мне не надо ускорение, мне надо "живое приложение" потому как запросы не детские, а в проге кроме них можно и нужно выполнять и другие более быстрые операции.


 
Slaga ©   (2005-03-02 12:58) [4]

Тут делать не в скорости а в многозадачности, например, пользователь запустил некоторую "долгую" выборку а сам тем временем, выполняет другие "быстрые" запросы к базе.


 
Reindeer Moss Eater ©   (2005-03-02 13:03) [5]

Нужны множественные коннекты к серверу и такие же сессии.


 
slaga ©   (2005-03-02 14:38) [6]

А что такое OracleSessionPool и с чем его едят ?


 
kivadim   (2005-03-02 16:13) [7]

Я извиняюсь..., а к компонентам палитры АДО тоже нужны множественные сесси для работы запросов в разных потоках?


 
Digitman ©   (2005-03-02 16:21) [8]

боюсь, дело тут как всегда в бездумном использовании TThread.Synchronize()


 
slaga ©   (2005-03-02 16:23) [9]

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


 
slaga ©   (2005-03-02 16:43) [10]

to Digitman
нет, я не использую TThread.Synchronize() в этом случает.


 
Digitman ©   (2005-03-02 16:52) [11]


> slaga


тред должен создать в своем контексте свою индивидуальную связку объектов session+database+query


 
slaga ©   (2005-03-02 17:16) [12]

ага, спосибо, это решение, просто думал может как-то красибо через компоненту OracleSessionPool, для чего-то она есть :)


 
MORA   (2005-03-02 23:07) [13]


> тред должен создать в своем контексте свою индивидуальную
> связку объектов session+database+query


это точно. а почитать мона в книжке. Я лично почитал в D-6 Руководство разработчика. С. Тейксейра и К. Пачеко. Там много знать не надо. Главное - для каждого потока свои session+database+query.



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

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

Наверх




Память: 0.5 MB
Время: 0.027 c
9-1104704810
Trip
2005-01-03 01:26
2005.03.27
Потестируйте мой скринсэйвер на GLScene ?


9-1104761201
Tankist
2005-01-03 17:06
2005.03.27
Как менять гамму в powerdraw???


1-1110955876
Tankist
2005-03-16 09:51
2005.03.27
LISTVIEW - Как сортировать элементы не по 1-му столбцу, а по 2-му


6-1106575071
Progh
2005-01-24 16:57
2005.03.27
Сохранить вложение из idMessage


14-1109936690
DelphiN!
2005-03-04 14:44
2005.03.27
Твик RestrictRun