Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MSSQL2005 - ADO.CommandTimeouts, Приоритет подключения  [new]
sa.pupkin
Member

Откуда:
Сообщений: 4
Есть N моих подключений к базе через ADO с CommandTimeouts=30s. К базе подключаются не только через моего клиента, есть и сторонние продукты. В какой-то момент времени мои подключения дают (судя по логам) время исполнения запросов/вставок то чуть больше 180s, то чуть больше 300s. Понятно, что параллельно работают другие подключения которые могут блокировать мои данные, но вот сам факт времени исполнения немного удивляет. Почему запрос с таким временем исполнения не отваливается по таймауту?

В связи с этим есть второй вопрос - как можно дать моему подключению больший приоритет перед остальными? Основная задача моих подключений заливка важных данных критичных по времени, а когда к базе подключено ещё 200 пользователей просматривающих эти данные, работа моих подключений становится затруднительной.

Заранее спасибо за ответы.
8 ноя 09, 11:59    [7897895]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005 - ADO.CommandTimeouts, Приоритет подключения  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
sa.pupkin
Есть N моих подключений к базе
через ADO с CommandTimeouts=30s.
[quote]
Подключение- это подключение, время таймаута команды - другое.
[quote автор] К базе подключаются не только через моего клиента, есть и сторонние продукты.

это просто замечательно

автор
В какой-то момент времени мои подключения дают (судя по логам)
время исполнения запросов/вставок то чуть больше 180s, то чуть больше 300s.


определитесь уж, сессии длятся или батчи выполняются и как вы смотрите это.


автор
Понятно, что параллельно работают другие подключения которые могут блокировать мои данные,

не только , но и вы можете блокировать.

автор
но вот сам факт времени исполнения немного удивляет. Почему запрос с таким временем исполнения не отваливается по таймауту?


вот такой вот говнокод


автор
В связи с этим есть второй вопрос - как можно дать моему подключению больший приоритет перед остальными?

нет

автор
Основная задача моих подключений заливка важных данных критичных по времени, а когда к базе подключено ещё 200 пользователей просматривающих эти данные, работа моих подключений становится затруднительной.


ну , логические блокировки никто не отменял.

опять таки смотрите в планы выполния запросов, какие блокировки , методы вставки данных.
8 ноя 09, 12:45    [7897930]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005 - ADO.CommandTimeouts, Приоритет подключения  [new]
sa.pupkin
Member

Откуда:
Сообщений: 4
Ken@t

автор
но вот сам факт времени исполнения немного удивляет. Почему запрос с таким временем исполнения не отваливается по таймауту?

вот такой вот говнокод


не думаю, что это как-то объясняет такое поведение.
8 ноя 09, 13:26    [7897982]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005 - ADO.CommandTimeouts, Приоритет подключения  [new]
aleks2
Guest
sa.pupkin
Есть N моих подключений к базе через ADO с CommandTimeouts=30s. К базе подключаются не только через моего клиента, есть и сторонние продукты. В какой-то момент времени мои подключения дают (судя по логам) время исполнения запросов/вставок то чуть больше 180s, то чуть больше 300s. Понятно, что параллельно работают другие подключения которые могут блокировать мои данные, но вот сам факт времени исполнения немного удивляет. Почему запрос с таким временем исполнения не отваливается по таймауту?


Это таймаут ДО НАЧАЛА ПЕРЕДАЧИ ДАННЫХ сервером клиенту, а НЕ до окончания выполнения команды. Передавать можно хучь час, хучь вечность...


sa.pupkin
В связи с этим есть второй вопрос - как можно дать моему подключению больший приоритет перед остальными? Основная задача моих подключений заливка важных данных критичных по времени, а когда к базе подключено ещё 200 пользователей просматривающих эти данные, работа моих подключений становится затруднительной.


Никак. Ибо (вроде обещают, правда) ожидание блокировки высокоприоритетным процесссом - один хрен ожидание...

Надо работать над оптимизацией запросов, шоб выполнялись в 30мс, а не в 30 с.
8 ноя 09, 14:25    [7898066]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005 - ADO.CommandTimeouts, Приоритет подключения  [new]
sa.pupkin
Member

Откуда:
Сообщений: 4
aleks2

Это таймаут ДО НАЧАЛА ПЕРЕДАЧИ ДАННЫХ сервером клиенту, а НЕ до окончания выполнения команды. Передавать можно хучь час, хучь вечность...


хэх. так нет вообще ПЕРЕДАЧИ ДАННЫХ. тупо ждем-с данных 5 минут вместо положенных 30сек.

aleks2
sa.pupkin
В связи с этим есть второй вопрос - как можно дать моему подключению больший приоритет перед остальными? Основная задача моих подключений заливка важных данных критичных по времени, а когда к базе подключено ещё 200 пользователей просматривающих эти данные, работа моих подключений становится затруднительной.

Никак. Ибо (вроде обещают, правда) ожидание блокировки высокоприоритетным процесссом - один хрен ожидание...
Надо работать над оптимизацией запросов, шоб выполнялись в 30мс, а не в 30 с.


печально, но когда нет _чужих подключений_ оно и проходит за 30мс.
8 ноя 09, 20:20    [7898660]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005 - ADO.CommandTimeouts, Приоритет подключения  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
Могу предожоить платочек дабы утереться, поскольку доя анализа ситуации вы не приложили никаких усилий. Профилировщик велючите, смотрите блокировки, нагрузку, проведите нагрузочное ьестирование. Версию сервера, планы запросов.
8 ноя 09, 20:52    [7898766]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005 - ADO.CommandTimeouts, Приоритет подключения  [new]
sa.pupkin
Member

Откуда:
Сообщений: 4
Ken@t
Могу предожоить платочек дабы утереться, поскольку доя анализа ситуации вы не приложили никаких усилий. Профилировщик велючите, смотрите блокировки, нагрузку, проведите нагрузочное ьестирование. Версию сервера, планы запросов.


спасибо. если бы недельное сидение в профилере дало бы результат - я бы сюда не обращался. а так - с вас грамотного ответа никакого, то платочек при себе оставьте.
8 ноя 09, 21:30    [7898900]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005 - ADO.CommandTimeouts, Приоритет подключения  [new]
iljy
Member

Откуда:
Сообщений: 8711
sa.pupkin,

а вы какой собственно ответ хотите? Про блокировки сразу было сказано. И тут может быть ситуация, что клиент выбирает данные из таблицы и просто не закрывает рекордсет при чтении - вот и будет вам и 5 минут, и 2 часа. А обход блокировок - совершенно другая задача, тут надо индексы делать максимально грамотно, чтобы чтение не блокировало вставку, или вставлять в отдельную таблицу, а потом Jobом или еще как вливать данные в основные.
8 ноя 09, 21:37    [7898918]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005 - ADO.CommandTimeouts, Приоритет подключения  [new]
aleks2
Guest
sa.pupkin
хэх. так нет вообще ПЕРЕДАЧИ ДАННЫХ. тупо ждем-с данных 5 минут вместо положенных 30сек.


Гм, вы суслика видите? Нет?
А он есть...

Короче, если клиент не отображает данных - это отнюдь не означает, что он ничего не получил с сервера. А ADO любит асинхронную передачу...
9 ноя 09, 07:21    [7899500]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить