БД MS SQL Server
программа устанавливает соединение с базой через OLE DB и держит его до окончания работы.
После запуска программы время исполнения простого запроса в QA увеличивается на 30 сек
(с 0 до 3х), причём если сразу после запуска запроса переключиться в профайлер, то эти
секунд 30 не видно признаков этого запроса, и через 30 сек он также быстро выполняется.
в чём может быть причина такой паузы?
Здравствуйте, aibolit, Вы писали:
A>программа устанавливает соединение с базой через OLE DB и держит его до окончания работы.
И что же эта программа делает?
Re: тормозит второй коннект
От:
Аноним
Дата:
11.02.05 08:06
Оценка:
Здравствуйте, aibolit, Вы писали:
A>БД MS SQL Server A>программа устанавливает соединение с базой через OLE DB и держит его до окончания работы. A>После запуска программы время исполнения простого запроса в QA увеличивается на 30 сек A>(с 0 до 3х), причём если сразу после запуска запроса переключиться в профайлер, то эти
Видно что-то с блокировками.. A>секунд 30 не видно признаков этого запроса, и через 30 сек он также быстро выполняется. A>в чём может быть причина такой паузы?
Здравствуйте, Smirnov.Anton, Вы писали: SA>И что же эта программа делает?
программа периодически пишет в базу данные, получаемые с com-порта,
в запросе к таблицам обращаюсь с хинтом nolock
A>БД MS SQL Server A>программа устанавливает соединение с базой через OLE DB и держит его до окончания работы. A>После запуска программы время исполнения простого запроса в QA увеличивается на 30 сек A>(с 0 до 3х), причём если сразу после запуска запроса переключиться в профайлер, то эти A>секунд 30 не видно признаков этого запроса, и через 30 сек он также быстро выполняется. A>в чём может быть причина такой паузы?
Здравствуйте, aibolit, Вы писали:
A>БД MS SQL Server A>программа устанавливает соединение с базой через OLE DB и держит его до окончания работы.
Скорее всего больше коннекшнов не дает SQL Server
A>После запуска программы время исполнения простого запроса в QA увеличивается на 30 сек A>(с 0 до 3х), причём если сразу после запуска запроса переключиться в профайлер, то эти A>секунд 30 не видно признаков этого запроса, и через 30 сек он также быстро выполняется.
Это подтверждает тот факт, что коннекшн второму запросу отдается после освобождения его первым (по 30 сек. таймауту, судя по всему), после получения свободного коннекшна 2-й запрос моментально стартует и тут же выполняется (если Duration в профайлере после выполнения этого 2-го запроса не равно конечно 30 сек.).
П.С. Не утверждаю, что все именно так, но очень похоже на то.
Здравствуйте, _Senya, Вы писали:
_S>В случае с блокировками Duration 2-го запроса в профайлере был бы около 30 сек., мне кажется, что Айболит должен был бы это заметить.
Duration отличается, если пускать запрос без работы программы и с ней и зависит от того, как часто программа пишет в базу.
В программе дочерний поток устанавливает соединение с базой и выполняет тот же самый запрос, так вот он не тормозит