Lock:Deadlock イベント クラス

適用対象: SQL サーバー

Lock:Deadlock イベント クラスは、ロックの取得を試行したときに、その試行がデッドロックの一部になり、デッドロックの対象として選択されたために取り消す場合に生成されます。

Lock:Deadlock イベント クラスを使用して、デッドロックがいつ発生し、どのオブジェクトが関係しているかを監視します。 この情報を使用すると、デッドロックがアプリケーションのパフォーマンスに重大な影響を及ぼしているかどうかを判断できます。 次に、アプリケーション コードを調べ、デッドロックが最小になるように変更できるかどうかを判断できます。

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

データ列名 データの種類 説明 列 ID フィルター可能
ApplicationName nvarchar SQL Server のインスタンスへの接続を作成したクライアント アプリケーションの名前。 この列には、プログラムの表示名ではなく、アプリケーションによって渡された値が格納されます。 10 はい
BinaryData image ロック リソース ID。 2 はい
ClientProcessID int クライアント アプリケーションが実行されているプロセスに対し、ホスト コンピューターが割り当てた ID。 クライアントでクライアント プロセス ID が指定されると、このデータ列が作成されます。 9 はい
DatabaseID int ロックが取得されていたデータベースの ID です。 SQL Server Profiler では、 ServerName データ列がトレースにキャプチャされ、そのサーバーが利用可能な場合、データベースの名前が表示されます。 データベースに対応する値は、DB_ID 関数を使用して特定します。 3 はい
DatabaseName nvarchar ロックが取得されていたデータベースの名前です。 35 はい
Duration bigint ロック要求が発行されてからデッドロックが発生するまでに経過した時間 (ミリ秒) です。 13 はい
EndTime datetime デッドロックが終了した時刻です。 15 はい
EventClass int イベントの種類 = 25。 27 いいえ
EventSequence int 要求内の特定のイベントのシーケンス。 51 いいえ
GroupID int SQL トレース イベントが発生したワークロード グループの ID。 66 はい
HostName nvarchar クライアントが実行されているコンピューターの名前。 このデータ列にはクライアントからホスト名が提供されている場合に値が格納されます。 ホスト名を指定するには、 HOST_NAME 関数を使用します。 8 はい
IntegerData int デッドロック番号。 サーバーを起動すると番号が 0 から割り当てられ、デッドロックごとに増加します。 25 はい
IntegerData2 int 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 55 はい
IsSystem int イベントがシステム プロセスとユーザー プロセスのどちらで発生したか。 1 はシステム、0 はユーザーです。 60 はい
LoginName nvarchar ユーザーのログインの名前 (SQL Server セキュリティ ログインまたは DOMAIN\username の形式の Microsoft Windows ログイン資格情報)。 11 はい
LoginSid image ログイン ユーザーのセキュリティ ID 番号 (SID)。 この情報は、sys.server_principals カタログ ビューで参照できます。 各 SID はサーバーのログインごとに一意です。 41 はい
モード 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 取得されていたロックの種類に依存するテキスト値です。 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 = AUTONAMEDB

13 = HOBT

14 = ALLOCATION_UNIT
57 はい

参照

sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)