Как очистить статистику выполнения запросов в SQL Server 2005/2008 - PullRequest
27 голосов
/ 11 февраля 2010

На основе получения статистики выполнения запросов с использованием этого чрезвычайно полезного фрагмента SQL, полученного из этого поста Наиболее исполняемая хранимая процедура - переполнение стека :

SELECT TOP 100
   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 = 'BSP')
ORDER BY qs.total_worker_time/qs.execution_count DESC

Как мне полностью очистить эту статистику выполнения и начать с нуля?

Это было бы особенно полезно, так как ошибки разработки и тестирования приводили к тому, что подпрограммы вызывались обычно большое количество раз, что делало недействительными истинные уровни использования.

1 Ответ

54 голосов
/ 11 февраля 2010
DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS
...