Lock:Acquired イベント クラス

Lock:Acquiredイベント クラスは、データ ページなどのリソースのロックの取得を示します。

Lock:Acquired イベント クラスおよび Lock:Released イベント クラスを使用すると、オブジェクトがロックされている時点、取得するロックの種類、およびロックが保持されていた期間を監視できます。長時間ロックが保持されると、競合の問題が発生する原因となり、調査が必要になることがあります。たとえば、アプリケーションでは、テーブルの行のロックを取得して、ユーザー入力を待機できます。ユーザー入力は行われるまでに長時間かかることがあるので、ロックによって他のユーザーがブロックされることがあります。この場合、アプリケーションは、必要なときにだけロックを要求し、ロックが取得されている場合はユーザー入力を要求しないように再設計する必要があります。

Lock:Acquired イベント クラスのデータ列

データ列名

データ型

説明

列 ID

フィルターの適用

ApplicationName

nvarchar

Microsoft SQL Server のインスタンスへの接続を作成したクライアント アプリケーションの名前。この列には、プログラムの表示名ではなく、アプリケーションによって渡された値が格納されます。

10

BigintData1

bigint

パーティション ID (ロック リソースがパーティション分割されている場合)。

52

BinaryData

image

ロック リソース ID。

2

ClientProcessID

int

クライアント アプリケーションが実行されているプロセスに対し、ホスト コンピューターが割り当てた ID。クライアントによりクライアント プロセス ID が指定されると、このデータ列に値が格納されます。

9

DatabaseID

int

ロックが取得されたデータベースの ID。ServerName データ列がトレースにキャプチャされ、サーバーが使用できる場合、SQL Server Profiler にデータベースの名前が表示されます。データベースに対応する値は、DB_ID 関数を使用して特定します。

3

Duration

bigint

ロック要求が発行されてからロックが取得されたときまでの時間 (マイクロ秒)。

13

EndTime

datetime

イベントが終了した時刻。

15

EventClass

int

イベントの種類 = 24。

27

不可

EventSequence

int

要求内の特定のイベントのシーケンス。

51

不可

GroupID

int

SQL トレース イベントが発生したワークロード グループの ID。

66

HostName

nvarchar

クライアントが実行されているコンピューターの名前。クライアントによりホスト名が指定されている場合は、このデータ列に値が格納されます。ホスト名を指定するには、HOST_NAME 関数を使用します。

8

IntegerData2

int

単に情報を示すためだけに特定されます。サポートされていません。将来の互換性は保証されません。

55

IsSystem

int

イベントがシステム プロセスで発生したか、ユーザー プロセスで発生したかを示します。1 = システム、0 = ユーザーです。

60

LoginName

nvarchar

ユーザーのログイン名 (SQL Server セキュリティ ログインまたは DOMAIN\username という形式の Windows ログイン資格情報)。

11

LoginSid

image

ログイン ユーザーのセキュリティ ID 番号 (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

ロックを取得したオブジェクトの ID (使用可能かつ適用可能な場合)。

22

ObjectID2

bigint

関連するオブジェクトまたはエンティティの ID (使用可能かつ適用可能な場合)。

56

OwnerID

int

1 = TRANSACTION

2 = CURSOR

3 = SESSION

4 = SHARED_TRANSACTION_WORKSPACE

5 = EXCLUSIVE_TRANSACTION_WORKSPACE

58

RequestID

int

ステートメントが含まれている要求の ID。

49

ServerName

nvarchar

トレースされている SQL Server のインスタンスの名前。

26

不可

SessionLoginName

nvarchar

セッションを開始したユーザーのログイン名。たとえば、Login1 を使用して SQL Server に接続し、Login2 でステートメントを実行すると、SessionLoginName には Login1 が表示され、LoginName には Login2 が表示されます。この列には、SQL Server ログインと Windows ログインの両方が表示されます。

64

SPID

int

イベントが発生したセッションの ID。

12

StartTime

datetime

イベントの開始時刻 (取得できた場合)。

14

TextData

ntext

取得したロックの種類に依存するテキスト値。この値は、sys.dm_tran_locks の resource_description 列と同じです。

1

TransactionID

bigint

トランザクションにシステムが割り当てた ID。

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 = HOBT

13=ALLOCATION_UNIT

57