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

Откуда:
Сообщений: 42
Дело в следующем:
работает прилага под net 2.0. Через некоторое время запросы начинают жесточайше тупить. Смотрю профайлером: количество чтений переваливает за десятки миллионов и длительность за 30 секунд. Запускаю этот же запрос в Query Analyzer : количество чтений - несколько сотен, длительность - 70 мс. Сбрасываю кэш - без особых изменений: из программы тупит, из QA - все летает.
Куда рыть? Какие настройки сервера смотреть? Есть ли у кого идеи
16 дек 09, 13:40    [8075102]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
vino
Member

Откуда:
Сообщений: 1191
SAlexN
...Запускаю этот же запрос в Query Analyzer : количество чтений - несколько сотен, длительность - 70 мс. Сбрасываю кэш - без особых изменений: из программы тупит, из QA - все летает.
Куда рыть? Какие настройки сервера смотреть? Есть ли у кого идеи
Неужели прога выполняет один единственный запрос не чаще раза в минуту? Возможно, она еще что-либо апдейтит или вставляет параллельно чтению тех же таблиц, потому и тормозит.
Под очисткой кэша имелось в виду просто "забывание планов выполнения"?
Есть на платформе .net сборщик мусора, который, наверно, не успевает освобождать память, использованную приложением? Посмотрите, сколько памяти расходует прога, когда тупит.
16 дек 09, 13:59    [8075256]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
SAlexN
Member

Откуда:
Сообщений: 42
SAlexN,

уточнение:
выполняется хранимая процедура, которая фактически является выборкой из 7 таблиц. Идет JOIN на таблицы. Индексы все есть, foreign key есть. Ощущение, что через некоторое время индексы "слетают", т.е. идет полный скан таблиц и из-за этого так тупит
16 дек 09, 14:01    [8075273]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
SAlexN
Member

Откуда:
Сообщений: 42
Неужели прога выполняет один единственный запрос не чаще раза в минуту? Возможно, она еще что-либо апдейтит или вставляет параллельно чтению тех же таблиц, потому и тормозит.

Строится отчет. В этот момент никаких записей не происходит.

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

Да, просто забывание планов

Есть на платформе .net сборщик мусора, который, наверно, не успевает освобождать память, использованную приложением? Посмотрите, сколько памяти расходует прога, когда тупит.

Перегружаю программу, запускаю отчет и че же самые грабли. Да и какое отношение имеет корличество чтений сервера к сборщику мусора
16 дек 09, 14:05    [8075305]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
vino
Member

Откуда:
Сообщений: 1191
SAlexN, сравнивали планы запросов?
Тут либо запросы разные либо планы.

А пример проги, которая будет тупить:
1) запускает несколько асинхронных запросов (почти одновременно)
2) когда из-за малого таймаута не успевает получить данные - возникает исключение, после которого повторяется попытка получения тех же данных
16 дек 09, 15:06    [8075938]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
SAlexN
Member

Откуда:
Сообщений: 42
vino
SAlexN, сравнивали планы запросов?
Тут либо запросы разные либо планы.

А пример проги, которая будет тупить:
1) запускает несколько асинхронных запросов (почти одновременно)
2) когда из-за малого таймаута не успевает получить данные - возникает исключение, после которого повторяется попытка получения тех же данных


запрос по умолчанию одинаковый, так вызывается SP
по профайлеру этот запрос начинает тупить...

запросы не запускаются асинхронно.
16 дек 09, 15:23    [8076102]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
SAlexN,

ну так сравните планы.
16 дек 09, 15:53    [8076339]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
SAlexN
Member

Откуда:
Сообщений: 42
Le Peace
SAlexN,

ну так сравните планы.


как?
если прогоняю через QA - все ок.

и что делать, если планы разные будут?
16 дек 09, 15:59    [8076387]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
1) Запускате трассровку и включате событик Perfomance:ShowplanXML, ну или ShowplanALL.
Можно все включить.

2)Если планы будут разные, ищите причину.Скорее всего дело в параметризации.
16 дек 09, 16:04    [8076439]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
vino
Member

Откуда:
Сообщений: 1191
SAlexN уверен, что вытеснение памяти программой не имеет место.
Тогда хотя бы версию сервера огласите?
16 дек 09, 16:13    [8076514]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
SAlexN
Member

Откуда:
Сообщений: 42
vino
SAlexN уверен, что вытеснение памяти программой не имеет место.
Тогда хотя бы версию сервера огласите?


сервер 2005
16 дек 09, 16:16    [8076537]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
vino
Member

Откуда:
Сообщений: 1191
SAlexN, когда планы сравните, посмотрите про оптимизатор, может пригодиться
16 дек 09, 19:43    [8077637]     Ответить | Цитировать Сообщить модератору
 Re: Длительное выполнение запроса  [new]
SAlexN
Member

Откуда:
Сообщений: 42
vino,

ВСЕМ СПАСИБО!!!
Ссылки помогли! Реально это план глючил.
17 дек 09, 14:38    [8080864]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить