首页 > 资讯列表 > 编程/数据库 >> 数据库操作教程

SQLSERVER查询正在实行的SQL语句

数据库操作教程 2022-09-23 17:01:34 转载来源: 网络整理/侵权必删

具体操作:根据master.dbo.sysprocesses中的spid和blocked查找当前阻塞语句的主人,然后使用DBCCINPUTBUFFER()查看阻塞语句。例子:打开三个查询分析器A、B、C创建一个测试用的表testDiaCreateTabletestDia(IDint);在A执行以下语句:BegintranInsertIntotestDiaValues(1);在B执行以下语句:Select*fromtestDia当前情况:B中没有显示结果,显示状态为等待在C执行以下语句:declare@spidint,@blockedintselecttop1@blocked=blockedfrommaster.dbo.sysprocesseswhereblocked>0DBCCINPUTBUFFER(@blocked)技术参考:DBCCINPUTBUFFER(Transact-SQL)显示从客户端发送到MicrosoftSQLServer2005实例的最后一个语句

具体操作:
根据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 的所有信息性消息。

标签: SQLSERVER 查询 正在 行的 SQL 语句


声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!

站长搜索

http://www.adminso.com

Copyright @ 2007~2024 All Rights Reserved.

Powered By 站长搜索

打开手机扫描上面的二维码打开手机版


使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

站长搜索目录系统技术支持