查找高 CPU 查询
通过以下查询,可以找出占用 CPU 资源最多的查询:
sql
SELECT
SQLText.text AS QueryText,
SQLStats.execution_count AS ExecutionCount,
SQLStats.total_worker_time / 1000 AS TotalCPUTimeMS,
SQLStats.total_worker_time / SQLStats.execution_count / 1000 AS AvgCPUTimeMS,
SQLStats.total_elapsed_time / 1000 AS TotalElapsedTimeMS,
SQLStats.total_elapsed_time / SQLStats.execution_count / 1000 AS AvgElapsedTimeMS
FROM
sys.dm_exec_query_stats SQLStats
CROSS APPLY sys.dm_exec_sql_text(SQLStats.sql_handle) AS SQLText
ORDER BY
TotalCPUTimeMS DESC;
这会返回消耗 CPU 时间最多的查询。你可以根据查询的执行次数和 CPU 时间进一步分析
使用 DMVs 进行分析
使用动态管理视图 (DMVs) 获取更多关于 CPU 使用情况的详细信息。
sys.dm_exec_sessions:查看当前连接的会话。
SELECT
total_elapsed_time,
host_name,
program_name,
status,
login_name
,*
FROM
sys.dm_exec_sessions
WHERE
cpu_time > 1000 -- 调整这个阈值来寻找高 CPU 的会话
ORDE

最低0.47元/天 解锁文章
1329

被折叠的 条评论
为什么被折叠?



