SQL 查看CPU消耗最多的10个语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | --详细版,查看CPU消耗最多的10个语句 SELECT TOP 10 [cpu_time], [session_id], [request_id], [start_time] AS '开始时间' , [status] AS '状态' , [command] AS '命令' , dest.[text] AS 'sql语句' , DB_NAME([database_id]) AS '数据库名' , [blocking_session_id] AS '正在阻塞其他会话的会话ID' , [wait_type] AS '等待资源类型' , [wait_time] AS '等待时间' , [wait_resource] AS '等待的资源' , [reads] AS '物理读次数' , [writes] AS '写次数' , [logical_reads] AS '逻辑读次数' , [row_count] AS '返回结果行数' FROM sys.[dm_exec_requests] AS der CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest ORDER BY [cpu_time] DESC |
查看等待信息
如果SQLSERVER存在要等待的资源,那么执行下面语句就会显示出会话中有多少个worker在等待
结合[sys].[dm_os_wait_stats]视图,如果当前SQLSERVER里面没有任何等待资源,那么下面的SQL语句不会显示任何结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | SELECT TOP 10 [session_id], [request_id], [start_time] AS '开始时间' , [status] AS '状态' , [command] AS '命令' , dest.[text] AS 'sql语句' , DB_NAME([database_id]) AS '数据库名' , [blocking_session_id] AS '正在阻塞其他会话的会话ID' , der.[wait_type] AS '等待资源类型' , [wait_time] AS '等待时间' , [wait_resource] AS '等待的资源' , [dows].[waiting_tasks_count] AS '当前正在进行等待的任务数' , [reads] AS '物理读次数' , [writes] AS '写次数' , [logical_reads] AS '逻辑读次数' , [row_count] AS '返回结果行数' FROM sys.[dm_exec_requests] AS der INNER JOIN [sys].[dm_os_wait_stats] AS dows ON der.[wait_type]=[dows].[wait_type] CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest WHERE [session_id]>50 ORDER BY [cpu_time] DESC |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?