sys.sysindexes (Transact-SQL)
適用対象: SQL サーバー
現在のデータベース内のインデックスとテーブルごとに 1 行のデータを格納します。 このビューでは、XML インデックスはサポートされていません。 パーティション テーブルとパーティション インデックスは、このビューでは完全にはサポートされていません。代わりに、 sys.indexes カタログ ビューを使用してください。
重要
この SQL Server 2000 システム テーブルは、下位互換性を保つためにビューとして含まれています。 代わりに、現在の SQL Server システム ビューを使用することをお勧めします。 対応するシステム ビューを調べるには、「システム テーブルのシステム ビューへのマッピング (Transact-SQL)」をご覧ください。 この機能は、Microsoft SQL Server の将来のバージョンで削除されます。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。
列名 | データ型 | 説明 |
---|---|---|
id | int | インデックスが属するテーブルの ID。 |
status | int | システム状態情報。 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
first | binary(6) | 最初またはルート ページへのポインター。 indid = 0 の場合は使用されません。 NULL = インデックスは、 indid> 1 の場合にパーティション分割されます。 NULL = テーブルは、 indid が 0 または 1 の場合にパーティション分割されます。 |
indid | smallint | インデックスの ID: 0 = ヒープ 1 = クラスター化インデックス >1 = 非クラスター化インデックス |
root | binary(6) | indid>= 1 の場合、root はルート ページへのポインターです。 indid = 0 の場合は使用されません。 NULL = インデックスは、 indid> 1 の場合にパーティション分割されます。 NULL = テーブルは、 indid が 0 または 1 の場合にパーティション分割されます。 |
minlen | smallint | 行の最小サイズ。 |
keycnt | smallint | キーの数。 |
groupid | smallint | オブジェクトが作成されたファイル グループ ID。 NULL = インデックスは、 indid> 1 の場合にパーティション分割されます。 NULL = テーブルは、 indid が 0 または 1 の場合にパーティション分割されます。 |
dpages | int | indid = 0 または indid = 1 の場合、dpages は使用されるデータ ページの数です。 indid> 1 の場合、dpages は使用されるインデックス ページの数です。 0 = インデックスは、 indid> 1 の場合にパーティション分割されます。 0 = テーブルは、 indid が 0 または 1 の場合にパーティション分割されます。 行オーバーフローが発生した場合、正確な結果が得られない。 |
reserved | int | indid = 0 または indid = 1 の場合、予約は、すべてのインデックスとテーブル データに割り当てられたページの数です。 indid> 1 の場合、予約済みはインデックスに割り当てられたページの数です。 0 = インデックスは、 indid> 1 の場合にパーティション分割されます。 0 = テーブルは、 indid が 0 または 1 の場合にパーティション分割されます。 行オーバーフローが発生した場合、正確な結果が得られない。 |
used | int | indid = 0 または indid = 1 の場合、usedは、すべてのインデックスおよびテーブル データに使用された合計ページ数です。 indid> 1 の場合、used はインデックスに使用されるページの数です。 0 = インデックスは、 indid> 1 の場合にパーティション分割されます。 0 = テーブルは、 indid が 0 または 1 の場合にパーティション分割されます。 行オーバーフローが発生した場合、正確な結果が得られない。 |
rowcnt | bigint | indid = 0 および indid = 1 に基づくデータ レベルの行数。 0 = インデックスは、 indid> 1 の場合にパーティション分割されます。 0 = テーブルは、 indid が 0 または 1 の場合にパーティション分割されます。 |
rowmodctr | int | テーブルの統計情報が前回更新されてから挿入、削除、更新された行の総数。 0 = インデックスは、 indid> 1 の場合にパーティション分割されます。 0 = テーブルは、 indid が 0 または 1 の場合にパーティション分割されます。 SQL Server 2005 (9.x) 以降では、 rowmodctr は以前のバージョンと完全に互換性がありません。 詳細については、「解説」を参照してください。 |
reserved3 | int | 0 を返します。 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
reserved4 | int | 0 を返します。 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
xmaxlen | smallint | 行の最大サイズ |
maxirow | smallint | 非リーフ インデックス行の最大サイズ。 SQL Server 2005 (9.x) 以降では、 maxirow は以前のバージョンと完全に互換性がありません。 |
OrigFillFactor | tinyint | インデックスの作成時に使用される元の塗りつぶし係数の値。 この値は保持されません。ただし、インデックスを再作成する必要があり、使用された fill factor 値を覚えていない場合に役立ちます。 |
StatVersion | tinyint | 0 を返します。 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
reserved2 | int | 0 を返します。 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
FirstIAM | binary(6) | NULL = インデックスはパーティション分割されています。 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
impid | smallint | インデックス実装フラグ。 0 を返します。 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
lockflags | smallint | インデックスに対して考慮されるロックの粒度を制限するために使用されます。 たとえば、ロック コストを最小限にするには、基本的に読み取り専用の参照テーブルで、テーブル レベルのロックだけを行うように設定します。 |
pgmodctr | int | 0 を返します。 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
keys | varbinary(816) | インデックス キーを構成する列の列 ID の一覧。 NULL を返します。 インデックス キー列を表示するには、 sys.sysindexkeys を使用します。 |
name | sysname | インデックスまたは統計の名前。 indid = 0 の場合は NULL を返します。 NULL ヒープ名を検索するようにアプリケーションを変更します。 |
statblob | image | 統計バイナリ ラージ オブジェクト (BLOB)。 NULL を返します。 |
maxlen | int | 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
rows | int | indid = 0 および indid = 1 に基づくデータ レベルの行数。値は indid>1 に対して繰り返されます。 |
解説
予約済みとして定義されている列は使用しないでください。
列ページ、予約、およびは、テーブルまたはインデックスにROW_OVERFLOWアロケーション ユニット内のデータが含まれている場合、正確な結果を返しません。 また、各インデックスのページ数は個別に追跡され、ベース テーブル用に集計されることはありません。 ページ数を表示するには、 sys.allocation_units または sys.partitions カタログ ビュー、または sys.dm_db_partition_stats 動的管理ビューを使用します。
SQL Server 2000 以前では、データベース エンジン行レベルの変更カウンターが維持されています。 現在、こうしたカウンターは列レベルで管理されます。 したがって、 rowmodctr 列が計算され、以前のバージョンの結果に似た結果が生成されますが、正確ではありません。
rowmodctr の値を使用して統計を更新するタイミングを決定する場合は、次の解決策を検討してください。
何もしない。 新しい rowmodctr 値は、動作が以前のバージョンの結果にかなり近いため、統計を更新するタイミングを判断するのに役立ちます。
AUTO_UPDATE_STATISTICSを使用します。 詳細については、「 Statistics」を参照してください。
時間制限を使用して、統計を更新するタイミングを決定します。 たとえば、1 時間ごと、毎日、毎週などです。
アプリケーション レベルの情報を使用して、統計を更新するタイミングを決定します。 たとえば、 identity 列の最大値が 10,000 を超える変更を加えるたびに、または一括挿入操作が実行されるたびに発生します。
参照
カタログ ビュー (Transact-SQL)
システム ビューへのシステム テーブルのマッピング (Transact-SQL)
sys.indexes (Transact-SQL)