sys.syslockinfo (Transact-SQL)
許可、変換、および待機のすべてのロック要求についての情報を格納します。
重要 |
---|
この SQL Server 2000 システム テーブルは、下位互換性を保つためにビューとして含まれています。代わりに、現在の SQL Server システム ビューを使用することをお勧めします。対応するシステム ビューを調べるには、「SQL Server 2005 システム ビューへの SQL Server 2000 システム テーブルのマッピング」を参照してください。この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。 |
重要 |
---|
この機能は以前のバージョンの SQL Server から変更されました。 詳細については、「SQL Server 2012 におけるデータベース エンジン機能の重大な変更」を参照してください。 |
列名 |
データ型 |
説明 |
---|---|---|
rsc_text |
nchar(32) |
ロック リソースの説明。 リソース名の一部が含まれます。 |
rsc_bin |
binary(16) |
バイナリ ロック リソース。 ロック マネージャーに格納されている実際のロック リソースが含まれます。 この列は、ロック リソースのフォーマットを解釈し、独自にフォーマットされたロック リソースを作成するツールや、syslockinfo 上で自己結合を実行するツール用に用意されています。 |
rsc_valblk |
binary(16) |
ロック値ブロック。 リソースの種類によっては、ロック マネージャーによってハッシュされず、特定のロック リソースの所有権が判断されないロック リソース内の追加データが含まれることがあります。 たとえば、ページ ロックは特定のオブジェクト ID で所有されません。 ロックのエスカレーションなどの目的があるためです。 ただし、ロック値ブロックにページ ロックのオブジェクト ID が含まれることがあります。 |
rsc_dbid |
smallint |
リソースに関連付けられているデータベース ID。 |
rsc_indid |
smallint |
該当する場合、リソースに関連付けられているインデックス ID。 |
rsc_objid |
int |
該当する場合、リソースに関連付けられているオブジェクト ID。 |
rsc_type |
tinyint |
リソースの種類。 1 = NULL リソース (未使用) 2 = データベース 3 = ファイル 4 = インデックス 5 = テーブル 6 = ページ 7 = キー 8 = エクステント 9 = RID (行 ID) 10 = アプリケーション |
rsc_flag |
tinyint |
内部リソース フラグ。 |
req_mode |
tinyint |
ロック要求モード。 この列には要求側のロック モードが含まれており、許可モード、または変換や待機モードを表します。 0 = NULL。 リソースへのアクセスは一切許可されません。 プレースホルダーとしての役割を果たします。 1 = Sch-S (スキーマ安定度)。 スキーマ エレメントに対してスキーマ安定度ロックが保持されているセッションの中では、テーブルやインデックスなどのスキーマ エレメントは削除されません。 2 = Sch-M (スキーマ修正)。 特定のリソースのスキーマを変更するセッションで保持される必要があります。 他のセッションで目的のオブジェクトが参照されないようにします。 3 = S (共有)。 保持しているセッションに、リソースへの共有アクセスが許可されます。 4 = U (更新)。 リソース上で取得された更新ロックが、最終的に更新されることが許可されます。 これは、後で更新される可能性があるリソースが複数のセッションによってロックされるとき、一般的な形式のデッドロックが発生するのを防止するために使用します。 5= X (排他)。 保持しているセッションで、リソースへの排他アクセスが許可されます。 6 = IS (共有インテント)。 ロック階層の下位のリソースに S ロックを設定するよう指定します。 7= IU (更新インテント)。 ロック階層の下位のリソースに U ロックを設定するよう指定します。 8 = IX (排他インテント)。 ロック階層の下位のリソースに X ロックを設定するよう指定します。 9 = SIU (共有更新インテント)。 ロック階層の下位のリソースに更新ロックを設定する目的で、リソースへの共有アクセスを指定します。 10 = SIX (共有排他インテント)。 ロック階層の下位のリソースに排他ロックを設定する目的で、リソースへの共有アクセスを指定します。 11 = IX (更新排他インテント)。 ロック階層の下位のリソースに排他ロックを設定する目的で、リソースに保持する更新ロックを指定します。 12 = BU。 一括操作で使用します。 13 = RangeS_S (共有キー範囲と共有リソース ロック)。 直列化可能な範囲スキャンを指定します。 14 = RangeS_U (共有キー範囲と更新リソース ロック)。 直列化可能な更新スキャンを指定します。 15 = RangeI_N (挿入キー範囲と NULL リソース ロック)。 新しいキーをインデックスに挿入する前に、範囲をテストするために使用します。 16 = RangeI_S。 RangeI_N と S ロックの重なりによって作成されるキー範囲変換ロックです。 17 = RangeI_U。 RangeI_N と U ロックの重なりによって作成されるキー範囲変換ロックです。 18 = RangeI_X。 RangeI_N と X ロックの重なりによって作成されるキー範囲変換ロックです。 19 = RangeX_S。 RangeI_N と RangeS_S ロックの重なりによって作成されるキー範囲変換 ロックです。 20 = RangeX_U。 RangeI_N と RangeS_U ロックの重なりによって作成されるキー範囲変換ロックです。 21 = RangeX_X (排他キー範囲と排他リソース ロック)。 範囲内のキーを更新する場合に使用する変換ロックです。 |
req_status |
tinyint |
ロック要求の状態。 1 = 許可 2 = 変換 3 = 待機 |
req_refcnt |
smallint |
ロック参照数。 参照数は、トランザクションが特定のリソースに対してロックを要求するたびに増加します。 参照数が 0 に達するまで、ロックを解放することはできません。 |
req_cryrefcnt |
smallint |
予約済み。 常に 0 に設定されます。 |
req_lifetime |
int |
ロックの有効期限のビットマップ。 特定のクエリ処理方法の実行中は、クエリ プロセッサによってクエリの特定のフェーズが完了するまで、リソース上のロックは保持される必要があります。 ロックの有効期限のビットマップは、クエリの特定フェーズの実行が完了したときに解放できるロックのグループを示すため、クエリ プロセッサとトランザクション マネージャーによって使用されます。 ビットマップ内の特定のビットを使用すると、参照数が 0 に達してもトランザクションの完了時までロックを保持するよう指定できます。 |
req_spid |
int |
ロックを要求するセッションの内部 Microsoft SQL Server データベース エンジン プロセス ID。 |
req_ecid |
int |
実行コンテキスト ID (ECID)。 並列操作内のどのスレッドが特定のロックを所有するかを指定するときに使用します。 |
req_ownertype |
smallint |
ロックに関連付けられているオブジェクトの種類。 1 = トランザクション 2 = カーソル 3 = セッション 4 = 前回のセッション 3 と 4 は、特殊なセッション ロックで、それぞれデータベースとファイル グループのロックを追跡します。 |
req_transactionID |
bigint |
syslockinfo および Profiler イベントで使用される一意なトランザクション ID。 |
req_transactionUOW |
uniqueidentifier |
DTC トランザクションの作業単位 ID (UOW)。 MS DTC 以外のトランザクションの場合、UOW は 0 に設定されます。 |
権限
サーバーの VIEW SERVER STATE 権限が必要です。