当前位置: 移动技术网 > IT编程>数据库>MSSQL > SQL SERVER 查询正在实行的SQL语句

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

蓝思科技股票,西域刀郎,艺术论文

具体操作:
根据master.dbo.sysprocesses中的spid和blocked查找当前阻塞语句的主人,然后使用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 的所有信息性消息。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网