Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выполнение двух запросов одновременно ? [D6]


Slaga ©   (2005-03-02 12:30:00) 

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

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

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

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


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


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


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


slaga   (2005-03-02 17:16:00) [2]

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


Digitman   (2005-03-02 16:52:00) [3]


> slaga


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


slaga   (2005-03-02 16:43:00) [4]

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


slaga   (2005-03-02 16:23:00) [5]

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


Digitman   (2005-03-02 16:21:00) [6]

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


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

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


slaga   (2005-03-02 14:38:00) [8]

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


Reindeer Moss Eater   (2005-03-02 13:03:00) [9]

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


Slaga   (2005-03-02 12:58:00) [10]

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


Slaga   (2005-03-02 12:54:00) [11]

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


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

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо