Share via


sys.syslockinfo (Transact-SQL)

許可、変換、および待機のすべてのロック要求についての情報を格納します。

重要な注意事項重要

この SQL Server 2000 システム テーブルは、下位互換性を保つためにビューとして含まれています。代わりに、現在の SQL Server システム ビューを使用することをお勧めします。対応するシステム ビューを調べるには、「SQL Server 2005 システム ビューへの SQL Server 2000 システム テーブルのマッピング」を参照してください。この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。

重要な注意事項重要

この機能は以前のバージョンの SQL Server から変更されました。詳細については、「SQL Server 2008 R2 におけるデータベース エンジン機能の重大な変更」を参照してください。

列名

データ型

説明

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 = 範囲 S_S (共有キー範囲と共有リソース ロック)。直列化可能な範囲スキャンを指定します。

14 = 範囲 S_U (共有キー範囲と更新リソース ロック)。直列化可能な更新スキャンを指定します。

15 = 範囲 I_N (挿入キー範囲と NULL リソース ロック)。新しいキーをインデックスに挿入する前に、範囲をテストするために使用します。

16 = 範囲 I_S。範囲 I_N と S ロックの重なりによって作成されるキー範囲変換ロックです。

17 = 範囲 I_U。範囲 I_N と U ロックの重なりによって作成されるキー範囲変換ロックです。

18 = 範囲 I_X。範囲 I_N と X ロックの重なりによって作成されるキー範囲変換ロックです。

19 = 範囲 X_S。範囲 I_N と範囲 S_S ロックの重なりによって作成されるキー範囲変換ロックです。

20 = 範囲 X_U。範囲 I_N と範囲 S_U ロックの重なりによって作成されるキー範囲変換ロックです。

21 = 範囲 X_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 権限が必要です。