Мы создали так многих неэффективная хранимая процедура в нашем приложении, мы всегда откладываем делать это более эффективным, пока у нас нет серьезной проблемы с производительностью базы данных.
Теперь, я думаю для фиксации его, один за другим заказывают чаще всего выполняемой хранимой процедурой.
Что состоит в том, чтобы выяснить лучший способ, какая хранимая процедура наиболее выполнена?
Существует ли сценарий, который может показать, какая хранимая процедура наиболее выполнена?
Использование:
SELECT TOP 10
qt.TEXT AS 'SP Name',
SUBSTRING(qt.text, qs.statement_start_offset/2, CASE WHEN (qs.statement_end_offset = -1) THEN LEN(qt.text) ELSE (qs.statement_end_offset - qs.statement_start_offset)/2 END) AS actual_query,
qs.execution_count AS 'Execution Count',
qs.total_worker_time/qs.execution_count AS 'AvgWorkerTime',
qs.total_worker_time AS 'TotalWorkerTime',
qs.total_physical_reads AS 'PhysicalReads',
qs.creation_time 'CreationTime',
qs.execution_count/DATEDIFF(Second, qs.creation_time, GETDATE()) AS 'Calls/Second'
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE qt.dbid = (SELECT dbid
FROM sys.sysdatabases
WHERE name = '[your database name]')
ORDER BY qs.total_physical_reads DESC
Ссылка: SQL SERVER - 2005 - Найти наиболее часто используемую хранимую процедуру
Быстрый способ сделать это - запустить SQL Profiler, а затем «сгруппировать» вашу трассировку по текстовым данным.
Вы также можете захотеть наблюдать только за определенными событиями, например SQL Batch Completed. Если я помню, это даст вам длительность и другую полезную статистику для группировки / фильтрации.
Типичная ситуация ..
Запустить анализатор производительности А затем запустите свое приложение установите несколько фильтров для захвата большого количества операций чтения / записи / сканирования и т. д.
Еще один замечательный инструмент - это панель мониторинга производительности Microsoft. текст ссылки