Наиболее выполненная хранимая процедура? - PullRequest
20 голосов
/ 22 декабря 2009

Мы создали так много неэффективных хранимых процедур в нашем приложении, что мы всегда откладываем его повышение до тех пор, пока у нас не возникнут серьезные проблемы с производительностью базы данных.

Теперь я думаю исправить это один за другим наиболее часто выполняемой хранимой процедурой.

Каков наилучший способ выяснить, какая хранимая процедура наиболее выполняется?

Существует ли сценарий, который может показать, какая хранимая процедура является наиболее выполняемой?

Ответы [ 4 ]

23 голосов
/ 22 декабря 2009

Использование:

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 - Найти наиболее часто используемую хранимую процедуру

1 голос
/ 22 декабря 2009

Другим фантастическим инструментом является Performance Dashboard от Microsoft. текст ссылки

1 голос
/ 22 декабря 2009

Быстрый способ сделать это - запустить SQL Profiler, а затем «сгруппировать» свою трассировку по TextData.

  • Зайдите в ваши свойства трассировки
  • На вкладке Выбор событий нажмите по организации столбцов ...
  • Нажмите на TextData и переместите его на область "Группы".

Возможно, вы захотите просматривать только определенные события, например, SQL Batch Completed. Если я помню, это даст вам продолжительность и другую полезную статистику для группировки / фильтрации по.

0 голосов
/ 22 декабря 2009

Типичная ситуация ..

Запустите анализатор производительности А затем запустите ваше приложение установить некоторые фильтры для захвата большого количества операций чтения / записи / сканирования и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...