SELECT TOP 50 total_worker_time / 1000 AS [总消耗CPU 时间(ms)],
execution_count AS [运行次数],
qs.total_worker_time / qs.execution_count / 1000 AS [平均消耗CPU 时间(ms)],
last_execution_time AS [最后一次执行时间],
max_worker_time / 1000 AS [最大执行时间(ms)],
SUBSTRING(qt.text, qs.statement_start_offset / 2 + 1,
(IIF(qs.statement_end_offset = -1, DATALENGTH(qt.text), qs.statement_end_offset) -
qs.statement_start_offset) / 2 + 1)
AS [使用CPU的语法],
qt.text AS [完整语法],
dbname=db_name(qt.dbid),
object_name(qt.objectid, qt.dbid) AS ObjectName
FROM sys.dm_exec_query_stats qs WITH (nolock)
CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE execution_count > 1
ORDER BY total_worker_time DESC