SqlServer 高耗时排查

@果酱  December 6, 2024
SELECT TOP 20 
    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) 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 
    (qs.total_worker_time/qs.execution_count/1000) DESC;

排查 SQL Server 中的高 CPU 使用率问题


添加新评论

  1. 哈哈哈,写的太好了https://www.lawjida.com/

    Reply
  2. 幽默外壳包裹严肃内核,寓教于乐。

    Reply
  3. 在畅想未来时需警惕乌托邦式理想化。

    Reply
  4. 选材新颖独特,通过细节描写赋予主题鲜活生命力。

    Reply
  5. 建议补充国内外研究对比,以拓展视野。

    Reply
  6. 对话设计自然,符合角色身份与情境。

    Reply