Lock:Acquired 事件類別

適用於:SQL Server

Lock:Acquiredevent 類別表示已達成資源鎖定的取得,例如資料頁。

Lock:Acquired 和 Lock:Released 事件類別可用來監視物件何時鎖定、所擷取的鎖定類型,以及保留鎖定的時間長度。 長時間保留的鎖定可能會導致爭用問題,而且應該進行調查。 例如,應用程式可以取得資料表中資料列的鎖定,然後等候使用者輸入。 由於使用者輸入可能需要很長的時間才會發生,因此鎖定可能會封鎖其他使用者。 在此實例中,應用程式應該重新設計,只有在需要時才提出鎖定要求,而且在取得鎖定時不需要使用者輸入。

Lock:Acquired 事件類別資料行

資料行名稱 資料類型 描述 資料行識別碼 可篩選
ApplicationName nvarchar 建立 Microsoft SQL Server 實例之連線的用戶端應用程式名稱。 此資料行會填入應用程式所傳遞的值,而不是程式顯示的名稱。 10 Yes
BigintData1 bigint 如果已分割鎖定資源,則為分割區識別碼。 52 Yes
BinaryData image 鎖定資源識別碼。 2 Yes
ClientProcessID int 主機電腦指派給執行用戶端應用程式的進程識別碼。 如果用戶端提供用戶端進程識別碼,就會填入此資料行。 9 Yes
DatabaseID int 取得鎖定的資料庫識別碼。 如果在追蹤中擷取到 ServerName 資料行且伺服器可用,SQL Server Profiler 便會顯示資料庫的名稱。 請使用 DB_ID 函數判斷資料庫的值。 3 Yes
持續時間 bigint 在發出鎖定要求與取得鎖定時間之間的時間量(以微秒為單位)。 13 Yes
EndTime datetime 事件結束的時間。 15 Yes
EventClass int 事件種類 = 24。 27 No
EventSequence int 要求內指定事件的順序。 51 No
GroupID int SQL 追蹤事件引發之工作負載群組的識別碼。 66 Yes
HostName nvarchar 用戶端執行所在的電腦名稱稱。 如果用戶端提供主機名稱,則會填入此資料行。 若要判斷主機名稱,請使用 HOST_NAME 函數。 8 Yes
IntegerData2 int 僅供參考之用。 不支援。 我們無法保證未來的相容性。 55 Yes
IsSystem int 指出事件發生在系統進程或使用者進程上。 1 = 系統,0 = 使用者。 60 Yes
LoginName nvarchar 使用者登入的名稱(SQL Server 安全性登入或網域\使用者名稱形式的 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 與取得之鎖定類型相依的文字值。 這個值與sys.dm_tran_locks中的resource_description資料行相同。 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

另請參閱

Lock:Released 事件類別
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL) (機器翻譯)