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

Откуда: Норильск
Сообщений: 226
Есть сервак SQL 2008. Стоит вебприложение на ИИС-е работает.
Но временами наскакивают на базу тормоза, потормозит, потормизит и отстанет. Смотрю в Monitor Activity - waiting task по нулям, batch request стабильно, вот Database I/O пики даёт достаточно сильные. Но что их вызывает? Вроде бы profiler должен помочь, но ситуация такая: у нас НЕТУ просто запросов из веб приложения, ВСЁ делается через функции и процедуры. А профайлер не показывает проблемные селекты внутри процедур, он может указать просто на неё. Но даже по процедурам, показывается какая то ерунда. 8-( Пробовали смотреть на закэшированные планы в sys.dm_exec_query_stats - всё не то.
Есть ли какие то средства, которые могут смотреть или разбирать, как внутри процедур/функций коллизии происходят?
7 ноя 12, 11:37    [13431541]     Ответить | Цитировать Сообщить модератору
 Re: Анализ производительности процедур и функций  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Блокировки тоже смотрели ?
7 ноя 12, 11:40    [13431569]     Ответить | Цитировать Сообщить модератору
 Re: Анализ производительности процедур и функций  [new]
Crimean
Member

Откуда:
Сообщений: 13148
1. профайлером ловить Batch Complete, RPC Complete
2. анализировать результат (1), выделить группу вызовов с аномальными стоимостями
3. ловить SP:StmtComplete (и еще кучку для комплекта) ТОЛЬКО С ФИЛЬТРОМ ибо достаточно затратная трассировка выйдет да и листать гигабайты траса после утомительно и смотреть, какие именно стейтменты доставляют больше всего проблем
7 ноя 12, 11:48    [13431643]     Ответить | Цитировать Сообщить модератору
 Re: Анализ производительности процедур и функций  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Crimean
3. ловить SP:StmtComplete (и еще кучку для комплекта) ТОЛЬКО С ФИЛЬТРОМ ибо достаточно затратная трассировка выйдет да и листать гигабайты траса после утомительно и смотреть, какие именно стейтменты доставляют больше всего проблем


Удобнее в табличку сохранить и там листать запросами :)
7 ноя 12, 11:51    [13431673]     Ответить | Цитировать Сообщить модератору
 Re: Анализ производительности процедур и функций  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Ozerov
Удобнее в табличку сохранить и там листать запросами :)


безусловно и всенепременно, но только после того, как будет достигнуто просветление на предмет того, как это вообще может помочь. а вот то самое "просветление" быстрее всего может появиться, если наглядно увидеть детальный трас одного выполнения проблемной хранимки. да и все равно детальная трассировка весьма ощутимо грузит сервер сама по себе
7 ноя 12, 11:59    [13431745]     Ответить | Цитировать Сообщить модератору
 Re: Анализ производительности процедур и функций  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
Спасибо за совет.
Решил на блок-и проверить сначала, поставил "SQL Deadlock Detector" - обнаружились блоки процедур, даже показал какие именно команды внутри процедур конфликтуют.
2Crimean, если после исправление блоков ничего не изменится, буду курить по вашему методу, эти гигабайты трасса. Спасибо.
7 ноя 12, 12:57    [13432355]     Ответить | Цитировать Сообщить модератору
 Re: Анализ производительности процедур и функций  [new]
Crimean
Member

Откуда:
Сообщений: 13148
так мы долгое время ловим или пики IO?
7 ноя 12, 13:20    [13432537]     Ответить | Цитировать Сообщить модератору
 Re: Анализ производительности процедур и функций  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
До этого долгое время ловили. Сначала корелили графики с работой селектов, которые не должны тормозить. Выяснились зависимость пиков И/О, начали в ту сторону смотреть. На лицо зависимость лок-ов с возрастанием ИО. Будем устранять.
7 ноя 12, 13:26    [13432603]     Ответить | Цитировать Сообщить модератору
 Re: Анализ производительности процедур и функций  [new]
Crimean
Member

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

локи с ИО связаны весьма косвенно. скорее всего, большое ИО влечет за собой увеличение времени транзакции, а, значит, к увеличению времени удержания блокировок этими транзакциями и дальше лавинообразно наступает полный коллапс из-за нарастания цепочек блокировок. возможно, хотя и маловероятно, что доходит и до эскалаций
ессно, это один из сценариев, но весьма вероятный
7 ноя 12, 13:50    [13432851]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить