程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL SERVER 查詢正在實行的SQL語句

SQL SERVER 查詢正在實行的SQL語句

編輯:關於SqlServer
具體操作:
根據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 的所有信息性消息。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved