Share via


Lock:Deadlock 事件類別

適用於:SQL Server

當嘗試取得鎖定時,會產生 Lock:Deadlock 事件類別,因為嘗試是死結的一部分,並被選擇為死結受害者。

使用 Lock:Deadlock 事件類別來監視何時發生死結,以及涉及哪些物件。 您可以使用這項資訊來判斷死結是否嚴重影響應用程式的效能。 然後,您可以檢查應用程式程式碼,以判斷是否可以進行變更,以將死結降到最低。

Lock:Deadlock 事件類別資料行

資料行名稱 資料類型 描述 資料行識別碼 可篩選
ApplicationName nvarchar 建立 SQL Server 實例之連線的用戶端應用程式名稱。 此資料行會填入應用程式所傳遞的值,而不是程式顯示的名稱。 10 Yes
BinaryData image 鎖定資源識別碼。 2 Yes
ClientProcessID int 主機電腦指派給執行用戶端應用程式的進程識別碼。 如果用戶端提供處理序識別碼,這個資料行就會擴展。 9 Yes
DatabaseID int 正在取得鎖定的資料庫識別碼。 如果在追蹤中擷取到 ServerName 資料行且伺服器可用,SQL Server Profiler 便會顯示資料庫的名稱。 請使用 DB_ID 函數判斷資料庫的值。 3 Yes
DatabaseName nvarchar 要取得鎖定的資料庫名稱。 35 Yes
持續時間 bigint 發出鎖定要求與發生死結的時間之間的時間量(以微秒為單位)。 13 Yes
EndTime datetime 死結結束的時間。 15 Yes
EventClass int 事件種類 = 25。 27 No
EventSequence int 要求內指定事件的序列。 51 No
GroupID int SQL 追蹤事件引發之工作負載群組的識別碼。 66 Yes
HostName nvarchar 用戶端執行所在的電腦名稱稱。 如果用戶端提供主機名稱,則會填入此資料行。 若要判斷主機名稱,請使用 HOST_NAME 函數。 8 Yes
IntegerData int 死結號碼。 當伺服器啟動時,會從 0 開始指派數位,並針對每個死結遞增。 25 Yes
IntegerData2 int 僅供參考之用。 不支援。 我們無法保證未來的相容性。 55 Yes
IsSystem int 指出事件發生在系統進程或使用者進程上。 1 = 系統,0 = 使用者。 60 Yes
LoginName nvarchar 使用者登入的名稱(SQL Server 安全性登入或網域\使用者名稱形式的 Microsoft Windows 登入認證)。 11 Yes
LoginSid image 已登入使用者的安全性識別碼(SID)。 您可以在sys.server_principals目錄檢視中找到此資訊。 每一個 SID 對於伺服器中的每個登入而言都是唯一的。 41 Yes
[模式] int 死結之後產生的模式。

0=Null - 與所有其他鎖定模式相容 (LCK_M_NL)

1=架構穩定性鎖定 (LCK_M_SCH_S)

2=架構修改鎖定 (LCK_M_SCH_M)

3=共用鎖定 (LCK_M_S)

4=更新鎖定 (LCK_M_U)

5=獨佔鎖定 (LCK_M_X)

6=意圖共用鎖定 (LCK_M_IS)

7=意圖更新鎖定 (LCK_M_IU)

8=意圖獨佔鎖定 (LCK_M_IX)

9=與意圖更新共用 (LCK_M_SIU)

10=與意圖獨佔共用 (LCK_M_SIX)

11=以意圖獨佔更新 (LCK_M_UIX)

12=大量更新鎖定 (LCK_M_BU)

13=金鑰範圍共用/共用 (LCK_M_RS_S)

14=金鑰範圍共用/更新 (LCK_M_RS_U)

15=索引鍵範圍插入 Null (LCK_M_RI_NL)

16=索引鍵範圍插入共用 (LCK_M_RI_S)

17=索引鍵範圍插入更新 (LCK_M_RI_U)

18=索引鍵範圍插入獨佔 (LCK_M_RI_X)

19=金鑰範圍獨佔共用 (LCK_M_RX_S)

20=金鑰範圍獨佔更新 (LCK_M_RX_U)

21=索引鍵範圍獨佔 (LCK_M_RX_X)
32 Yes
NTDomainName nvarchar 使用者所屬的 Windows 網域。 7 Yes
NTUserName nvarchar Windows 使用者名稱。 6 Yes
ObjectID int 如果可用且適用,則為爭用中物件的識別碼。 22 Yes
ObjectID2 bigint 如果可用且適用,則為相關物件或實體的識別碼。 56 Yes
OwnerID int 1=TRANSACTION

2=CURSOR

3=SESSION

4=SHARED_TRANSACTION_WORKSPACE

5=EXCLUSIVE_TRANSACTION_WORKSPACE
58 Yes
要求識別碼 int 包含 語句之要求的識別碼。 49 Yes
ServerName nvarchar 要追蹤之 SQL Server 實例的名稱。 26 No
SessionLoginName nvarchar 產生會話之使用者的登入名稱。 例如,如果您使用 Login1 連接到 SQL Server,並以 Login2 的形式執行語句,SessionLoginName 會顯示 Login1,而 LoginName 會顯示 Login2。 此資料行會顯示 SQL Server 和 Windows 登入。 64 Yes
SPID int 事件發生所在之工作階段的識別碼。 12 Yes
StartTime datetime 事件發生的時間,可用時。 14 Yes
TextData ntext 與所取得鎖定類型相依的文字值。 1 Yes
TransactionID bigint 交易的系統指派識別碼。 4 Yes
類型 int 1=Null_RESOURCE

2=DATABASE

3=FILE

5=OBJECT

6=PAGE

7=KEY

8=EXTENT

9=RID

10=APPLICATION

11=METADATA

12=AUTONAMEDB

13=HOBT

14=ALLOCATION_UNIT
57 Yes

另請參閱

sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL) (機器翻譯)