用SQLSERVER查询正在实行的SQL的方法

时间:2023-03-30 03:12:50 SQL 我要投稿
  • 相关推荐

用SQLSERVER查询正在实行的SQL的方法

  具体操作:

  根据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的方法】相关文章:

使用sql语句查询日期的方法09-17

SQL查询语句大全09-22

SQL优化大全08-26

oracle的sql语句06-18

怎么打开sql文件06-22

sql外键语句示范06-21

素描用铅笔的方法05-24

2017年sql考试试题05-13

SQL Server常用数据类型04-13

Oracle的sql语句模拟试题及答案08-27