以下 SQL兼容 SQLServer2008R2, 但是不兼容SQLServer2005
-
--查询所有正在运行中的SQL,按照cpu耗时倒序排列
select top 10 (select top 1 text from sys.dm_exec_sql_text(dm_c.most_recent_sql_handle)) as sqltext
,dm_s.cpu_time
,dm_c.session_id
,*
from Sys.dm_exec_connections as dm_c
join Sys.dm_exec_sessions as dm_s on(dm_c.session_id = dm_s.session_id)
where 1=1 --and dm_s.login_name = 'TCScenery'
and dm_s.status = 'running'
order by dm_s.cpu_time desc
-
--查看sysprocesses中锁及产生锁的session的SQL信息
WITH ProcessCTE(blocked) AS
(
SELECT blocked FROM sys.sysprocesses WHERE blocked>0
)
SELECT distinct a.*
FROM (
SELECT TEXT,AA.* FROM sys.sysprocesses AA
CROSS APPLY sys.dm_exec_sql_text(AA.sql_handle)
) a
JOIN ProcessCTE bucte WITH(NOLOCK)
ON bucte.blocked=a.spid
ORDER BY a.blocked
-
--总耗CPU最多的前个SQL:
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 [最后一次执行时间],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 total_worker_time DESC
-
--平均耗CPU最多的前个SQL:
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) 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
编辑推荐:
- scroll lock键在哪,有什么作用03-02
- 异常处理流程(不兼容SQLServer2005)03-02
- chkdsk磁盘修复工具怎么用03-02
- 活动监视器03-02
- 固态硬盘M.2接口与PCI-E SSD固态硬盘的关系03-02
- 怎样使用DBMS_OUTPUT.PUT_LINE?03-02
- 锁03-02
- space是哪个键,在哪里03-02
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- scroll lock键在哪,有什么作用
scroll lock键在哪,有什么作用
26-03-02 - chkdsk磁盘修复工具怎么用
chkdsk磁盘修复工具怎么用
26-03-02 - 活动监视器
活动监视器
26-03-02 - 固态硬盘M.2接口与PCI-E SSD固态硬盘的关系
固态硬盘M.2接口与PCI-E SSD固态硬盘的关系
26-03-02 - space是哪个键,在哪里
space是哪个键,在哪里
26-03-02 - dbo 与 db_owner选择 不同的效果
dbo 与 db_owner选择 不同的效果
26-03-02 - 使用 SQL Server Profiler 查看 慢SQL
使用 SQL Server Profiler 查看 慢SQL
26-03-02 - amd和intel CPU处理器哪个好
amd和intel CPU处理器哪个好
26-03-02 - pnkbstra.exe是什么进程文件,可以删除吗
pnkbstra.exe是什么进程文件,可以删除吗
26-03-02 - 分区表2
分区表2
26-03-02
