SQL SERVER 查询正在实行的SQL语句

使用工具:查询分析器

具体操作:

根据master.dbo.sysprocesses中的spidblocked查找当前阻塞语句的主人,然后使用DBCC INPUTBUFFER ()查看阻塞语句。

 

例子:

打开三个查询分析器 A、B、C

创建一个测试用的表 testDia

      Create Table testDia(ID int);

    在A执行以下语句:

         Begin tran

         Insert Into testDia Values(1);   

    在B执行以下语句:

         Select * from testDia

    当前情况:B中没有显示结果,显示状态为等待

    在C执行以下语句:

         declare @spid int, @blocked int
         select top 1 @blocked = blocked

           from master.dbo.sysprocesses

         where blocked > 0

          DBCC INPUTBUFFER (@blocked)

 

 技术参考:

DBCC INPUTBUFFER (Transact-SQL)
显示从客户端发送到 Microsoft SQL Server 2005 实例的最后一个语句。
DBCC INPUTBUFFER ( session_id [ , request_id ] )
[WITH NO_INFOMSGS ]

session_id
    与各活动主连接关联的会话 ID。

request_id
    要在当前会话中精确搜索的请求(批)。

下面的查询返回 request_id:

复制代码
SELECT request_id
   FROM sys.dm_exec_requests
 WHERE session_id = @@spidWITH
启用要指定的选项。

  NO_INFOMSGS
取消严重级别从 0 到 10 的所有信息性消息。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值