用SQLSERVER查詢正在實行的SQL的方法

具體操作:

用SQLSERVER查詢正在實行的SQL的方法

根據rocesses中的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 rocesses

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 _exec_requests

WHERE session_id = @@spidWITH

啓用要指定的選項。

NO_INFOMSGS

取消嚴重級別從 0 到 10 的所有信息性消息。