SQLServer日常维护--查询当前正在执行的语句、死锁、堵塞

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQLServer⽇常维护--查询当前正在执⾏的语句、死锁、堵塞查询当前正在执⾏的语句:
1SELECT
2 der.[session_id],der.[blocking_session_id],
3 stwaittype,sp.hostname,sp.program_name,sp.loginame,
4 der.[start_time]AS'开始时间',
5 der.[status]AS'状态',
6 dest.[text]AS'sql语句',
7DB_NAME(der.[database_id]) AS'数据库名',
8 der.[wait_type]AS'等待资源类型',
9 der.[wait_time]AS'等待时间',
10 der.[wait_resource]AS'等待的资源',
11 der.[logical_reads]AS'逻辑读次数'
12FROM sys.[dm_exec_requests]AS der
13INNER JOIN master.dbo.sysprocesses AS sp ON der.session_id=sp.spid
14CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
15--WHERE [session_id]>50 AND session_id<>@@SPID
16ORDER BY der.[session_id]
17GO
View Code
是否堵塞:
1SELECT spid,blocked,waittime,waittype,waitresource,p.dbid,cpu,physical_io,memusage,open_tran
2 ,status,login_time,last_batch,hostname,program_name,hostprocess,loginame,cmd,text
3FROM master.dbo.sysprocesses p CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) s
4WHERE blocked >0OR spid IN(SELECT blocked FROM master.dbo.sysprocesses WHERE blocked >0)
5go
View Code
是否有未提交事物:
1select spid,blocked,waittime,waittype,waitresource,p.dbid,cpu,physical_io,memusage,open_tran
2 ,status,login_time,last_batch,hostname,program_name,hostprocess,loginame,cmd,text
3from master.dbo.sysprocesses p cross apply sys.dm_exec_sql_text(p.sql_handle) s
4where open_tran <>0
5go
View Code
死锁:
1--drop table #deadlock
2
3CREATE TABLE #deadlock(LogDate DATETIME,ProcessInfo VARCHAR(20),Text VARCHAR(2000))
4go
5INSERT INTO #deadlock EXEC xp_readerrorlog 0,1,'deadlock victim',NULL,'2016-07-20 14:00:00','2016-07-30','DESC'
6go
View Code
死锁加nolock优化。

相关文档
最新文档