查CPU应该用事件探查器而不是引擎优化顾问可用以下语句分析一下SELECT TOP 100 execution_count / datediff(second, creation_time, last_execution_time) AS [Execute Count Per Second], execution_count, total_logical_reads/execution_count AS [Avg Logical Reads], total_elapsed_time /execution_count/1000 AS [Avg Elapsed Time], db_name(st.dbid) as [database name], object_name(st.objectid, st.dbid) as [object name], SUBSTRING(st.text, (qs.statement_start_offset / 2) + 1, ((CASE statement_end_offset WHEN - 1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset) / 2) + 1) AS statement_text FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st WHERE datediff(second, creation_time, last_execution_time)>0 --AND execution_count > 100 ORDER BY 4 DESC,1 DESC,3 DESC,2 DESC
execution_count / datediff(second, creation_time, last_execution_time) AS [Execute Count Per Second],
execution_count,
total_logical_reads/execution_count AS [Avg Logical Reads],
total_elapsed_time /execution_count/1000 AS [Avg Elapsed Time],
db_name(st.dbid) as [database name],
object_name(st.objectid, st.dbid) as [object name],
SUBSTRING(st.text, (qs.statement_start_offset / 2) + 1, ((CASE statement_end_offset WHEN - 1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset) / 2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
WHERE datediff(second, creation_time, last_execution_time)>0 --AND execution_count > 100
ORDER BY 4 DESC,1 DESC,3 DESC,2 DESC
没错,是这个步骤,我分析了10几分钟,没停下来,就一个SQL,我就想停掉,然后就成这样了,现在还删不掉