2010-03-22 2 views
1

Возможно, я подхожу к этой проблеме с неправильным углом, но то, о чем я думаю, является своего рода инструментом контроля производительности для SQl-сервера, который работает аналогично инструментам производительности кода, например. Я хотел бы увидеть результат, сколько раз была выработана каждая хранимая процедура, среднее время выполнения и, возможно, различные параметры использования ресурсов, такие как использование кэша/индекса, результирующий доступ к диску и сканирование таблицы и т. Д.Ищете инструменты для мониторинга производительности SQL Server

Я могу сказать, что монитор производительности, который поставляется с SQL Server, просто регистрирует различные вызовы, но не сообщает о том, что он variosu stats, который я ищу. Потенциально мне просто нужен инструмент для анализа выхода журнала?

ответ

0

Оказывается, что SQL Server Profiler сообщает о длительности сохраненных вызовов proc против сохраненного имени proc, это всего лишь матрица знания, какие события прослушивать. Шаблон SP_Counts, кажется, является лучшей отправной точкой, поскольку он сообщает сохраненные имена процессов. Если вы переключитесь на использование «завершенных», а не «запущенных» событий, тогда вы можете указать продолжительность каждого вызова. Оттуда вы можете сохранить записанную трассировку в файл XML и написать XPath/XQuery, чтобы суммировать общий и средний тим, потраченные в каждом сохраненном proc. Я закончил писать небольшое приложение C#, чтобы суммировать данные и выводить их в CSV-файл, чтобы я мог просматривать его в электронной таблице Excel и сортировать по различным столбцам - например. самая медленная сохраненная прок в среднем, хранится proc с наибольшим временем общего времени и SP с наибольшим количеством вызовов.

1

Профилировщик SQL Server дает вам то, что вы хотите, хотя, возможно, и не очень интуитивно.

Для контроля за хранимыми процедурами вы можете отслеживать событие SP:Completed и наблюдать за использованием ЦП, чтением/записью ввода-вывода и продолжительностью, чтобы получить то, что вы хотите. Для мониторинга кеша вам необходимо отслеживать события SP:CacheHit, SP:CacheInsert, SP:CacheMiss и SP:CacheRemove.

Если вы хотите другой инструмент, я могу очень порекомендовать Quest's Performance Analysis for SQL Server, который дает вам то, что вы хотите, и многое другое в простом в использовании пакете.

Смежные вопросы