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

时间:2024-08-31 18:38:58 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实现查询数据不显示错误数据的方法03-29

SQL查询语句大全04-25

sql语句的各种模糊查询03-30

Sql Server、Access数据排名的实现方法03-30

MySQL导出导入SQL文件命令方法03-30

有关清除SQL Server日志的两种方法03-29

SQL2008定时任务作业创建方法03-29

2016年微软认证模拟试题「SQLServer」03-15

SQL优化大全03-08