次の方法で共有


sys.sysindexes (Transact-SQL)

適用対象:SQL Server

現在のデータベース内のインデックスとテーブルごとに 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 の場合、Table はパーティション分割されます。
indid smallint インデックスの ID:

0 = ヒープ

1 = クラスター化インデックス

>1 = 非クラスター化インデックス
root binary(6) indid>= 1 の場合、root はルート ページへのポインターです。

indid = 0 の場合は使用されません。

NULL = indid> 1 の場合、インデックスはパーティション分割されます。

NULL = indid が 0 または 1 の場合、Table はパーティション分割されます。
minlen smallint 行の最小サイズ。
keycnt smallint キーの数。
groupid smallint オブジェクトが作成されたファイル グループ ID。

NULL = indid> 1 の場合、インデックスはパーティション分割されます。

NULL = indid が 0 または 1 の場合、Table はパーティション分割されます。
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 の場合、reserved はインデックスに割り当てられたページの数です。

0 = indid> 1 の場合、インデックスはパーティション分割されます。

0 = indid が 0 または 1 の場合、テーブルはパーティション分割されます。

行オーバーフローが発生した場合、正確な結果が得られない。
使用 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 を返します。

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
予約済み 2 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割り当て単位のデータが含まれている場合、 dpages 列、 予約列、 および 使用 列は正確な結果を返しません。 また、各インデックスのページ数は個別に追跡され、ベース テーブル用に集計されることはありません。 ページ数を表示するには、 sys.allocation_units または sys.partitions カタログ ビュー、または動的管理ビュー sys.dm_db_partition_stats 使用します。

SQL Server 2000 以前では、データベース エンジンは行レベルの変更カウンターを維持しました。 現在、こうしたカウンターは列レベルで管理されます。 したがって、 rowmodctr 列が計算され、以前のバージョンの結果に似た結果が生成されますが、正確ではありません。

rowmodctr の値を使用して統計を更新するタイミングを決定する場合は、次の解決策を検討してください。

  • 何もしない。 新しい rowmodctr 値は、動作が以前のバージョンの結果に適度に近いため、統計を更新するタイミングを判断するのに役立つ場合が多くなります。

  • AUTO_UPDATE_STATISTICSを使用します。 詳細については、「 統計」を参照してください。

  • 時間制限を使用して、統計を更新するタイミングを決定します。 たとえば、1 時間ごと、毎日、毎週などです。

  • アプリケーション レベルの情報を使用して、統計を更新するタイミングを決定します。 たとえば、 ID 列の最大値が 10,000 を超える変更を行うたびに、または一括挿入操作が実行されるたびに発生します。

参照

カタログ ビュー (Transact-SQL)
システム テーブルからシステム ビューへのマッピング (Transact-SQL)
sys.indexes (Transact-SQL)