Відповіді:
Ви можете отримати це (і багато іншого) з динамічних представлень управління (DMV). Щоб отримати статистику для певної збереженої процедури, спробуйте наступний запит.
SELECT
OBJECT_NAME(qt.objectid)
, qs.execution_count AS [Execution Count]
, qs.execution_count / DATEDIFF(Second, qs.creation_time, GETDATE()) AS [Calls/Second]
, qs.total_worker_time / qs.execution_count AS [AvgWorkerTime]
, qs.total_worker_time AS [TotalWorkerTime]
, qs.total_elapsed_time / qs.execution_count AS [AvgElapsedTime]
, qs.max_logical_reads
, qs.max_logical_writes
, qs.total_physical_reads
, DATEDIFF(Minute, qs.creation_time, GETDATE()) AS [Age in Cache]
FROM
sys.dm_exec_query_stats AS qs
CROSS APPLY
sys.dm_exec_sql_text(qs.[sql_handle]) AS qt
WHERE
qt.[dbid] = DB_ID()
AND qt.objectid = OBJECT_ID('StoredProcedureName')
OPTION (RECOMPILE);
Щоб переглянути найчастіше виконуючі процедури:
SELECT
OBJECT_NAME(qt.objectid)
, qs.execution_count AS [Execution Count]
, qs.execution_count / DATEDIFF(Second, qs.creation_time, GETDATE()) AS [Calls/Second]
, qs.total_worker_time / qs.execution_count AS [AvgWorkerTime]
, qs.total_worker_time AS [TotalWorkerTime]
, qs.total_elapsed_time / qs.execution_count AS [AvgElapsedTime]
, qs.max_logical_reads
, qs.max_logical_writes
, qs.total_physical_reads
, DATEDIFF(Minute, qs.creation_time, GETDATE()) AS [Age in Cache]
FROM
sys.dm_exec_query_stats AS qs
CROSS APPLY
sys.dm_exec_sql_text(qs.[sql_handle]) AS qt
WHERE
qt.[dbid] = DB_ID()
ORDER BY
qs.execution_count DESC
OPTION (RECOMPILE);
Зведені значення є сукупними з моменту останнього перезапуску. Якщо ви хочете виміряти протягом певного періоду, скористайтеся командою нижче, щоб скинути статистику очікування.
DBCC SQLPERF("sys.dm_os_wait_stats",CLEAR);
Якщо ви хочете виміряти фіксований часовий діапазон протягом дня, ви можете подати висновок запиту в таблицю за допомогою завдання агента, або: a) обчислити значення між двома запусками або b) видати статистику очікування скидання як останній крок у роботі агента .
Крім того, зафіксуйте слід профілера та запустіть його через Clear Trace .