SELECT TOP 50
		   total_worker_time / 1000                         AS [总消耗CPU 时间(ms)] ,
		   execution_count                                  [运行次数] ,
		   qs.total_worker_time / qs.execution_count / 1000 AS [平均消耗CPU 时间(ms)] ,
		   last_execution_time                              AS [最后一次执行时间] ,
		   min_worker_time / 1000                           AS [最小执行时间(ms)] ,
		   max_worker_time / 1000                           AS [最大执行时间(ms)] ,
		   SUBSTRING (
						 qt.text ,
						 qs.statement_start_offset / 2 + 1,
						 (CASE
						  WHEN qs.statement_end_offset = -1 THEN DATALENGTH (qt.text)
						  ELSE qs.statement_end_offset
						  END - qs.statement_start_offset
						 ) / 2 + 1
					 )                                      AS [使用CPU的语法] ,
		   qt.text                                          [完整语法] ,
		   qt.dbid ,
		   dbname                                           = db_name (qt.dbid) ,
		   qt.objectid ,
		   object_name (qt.objectid, qt.dbid)               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 (qs.total_worker_time / qs.execution_count / 1000) DESC

作者 uoscn