共用方式為


Lock:Acquired 事件類別

Lock:Acquired 事件類別指出已完成對資源 (例如,資料頁) 取得鎖定。

Lock:Acquired 與 Lock:Released 事件類別可用來監視物件何時鎖定、採用的鎖定類型以及鎖定已保留多久的時間。 長期保留的鎖定可能會造成競爭問題,應該加以調查。 例如,某個應用程式可能取得資料表中資料列的鎖定,然後等候使用者輸入。 由於使用者可能要很長時間來輸入,因此鎖定可能會封鎖其他使用者。 在這個例子中,應重新設計應用程式,只在需要時才提出鎖定要求,而且取得鎖定後不需要使用者輸入。

Lock:Acquired 事件類別資料行

資料行名稱

資料類型

說明

資料行識別碼

可篩選

ApplicationName

nvarchar

建立 Microsoft SQL Server 執行個體之連接的用戶端應用程式名稱。 這個資料行會填入應用程式所傳送的值,而非程式的顯示名稱。

10

BigintData1

bigint

資料分割識別碼 (如果鎖定資源已分割)。

52

BinaryData

image

鎖定資源識別碼。

2

ClientProcessID

int

由主機電腦指派給處理序 (用戶端應用程式執行所在) 的識別碼。 如果用戶端提供用戶端處理序識別碼,這個資料行就會擴展。

9

DatabaseID

int

取得鎖定之資料庫的識別碼。 如果在追蹤中擷取到 ServerName 資料行,而且伺服器可以使用,則 SQL Server Profiler 會顯示資料庫名稱。 請使用 DB_ID 函數判斷資料庫的值。

3

Duration

bigint

發出鎖定要求和取得鎖定之間的時間量 (以百萬分之一秒為單位)。

13

EndTime

datetime

事件結束的時間。

15

EventClass

int

事件類型 = 24。

27

EventSequence

int

要求中的給定事件順序。

51

GroupID

int

SQL 追蹤事件引發所在之工作負載群組的識別碼。

66

HostName

nvarchar

執行用戶端的電腦名稱。 如果用戶端提供主機名稱,這個資料行就會擴展。 若要判斷主機名稱,請使用 HOST_NAME 函數。

8

IntegerData2

int

僅供參考之用。不支援。我們無法保證未來的相容性。

55

IsSystem

int

指出事件是發生在系統處理序或使用者處理序。 1 = 系統,0 = 使用者。

60

LoginName

nvarchar

使用者的登入名稱 (SQL Server 安全性登入或 DOMAIN\username 格式的 Windows 登入認證)。

11

LoginSid

image

已登入之使用者的安全性識別碼 (SID)。 您可以在 sys.server_principals 目錄檢視中找到這項資訊。 伺服器上的每一個登入之 SID 是唯一的。

41

Mode

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

NTDomainName

nvarchar

使用者所隸屬的 Windows 網域。

7

NTUserName

nvarchar

Windows 使用者名稱。

6

ObjectID

int

在其上取得鎖定的物件識別碼 (如果有且適用的話)。

22

ObjectID2

bigint

相關物件或實體的識別碼 (如果有且適用的話)。

56

OwnerID

int

1=TRANSACTION

2=CURSOR

3=SESSION

4=SHARED_TRANSACTION_WORKSPACE

5=EXCLUSIVE_TRANSACTION_WORKSPACE

58

RequestID

int

包含陳述式之要求的識別碼。

49

ServerName

nvarchar

正在追蹤之 SQL Server 執行個體的名稱。

26

SessionLoginName

nvarchar

引發工作階段之使用者的登入名稱。 例如,若您使用 Login1 連接到 SQL Server,並且以 Login2 執行陳述式,則 SessionLoginName 會顯示 Login1,而 LoginName 會顯示 Login2。 此資料行將同時顯示 SQL Server 和 Windows 登入。

64

SPID

int

事件發生所在之工作階段的識別碼。

12

StartTime

datetime

事件啟動的時間 (如果有的話)。

14

TextData

ntext

與取得的鎖定類型有關的文字值。 這個值與 sys.dm_tran_locks 中的 resource_description 資料行相同。

1

TransactionID

bigint

由系統指派給交易的識別碼。

4

Type

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

請參閱

參考

Lock:Released 事件類別

sp_trace_setevent (Transact-SQL)

sys.dm_tran_locks (Transact-SQL)