次の方法で共有


sp_statistics (Transact-SQL)

指定したテーブルまたはインデックス付きビュー上にあるすべてのインデックスおよび統計の一覧を返します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_statistics [ @table_name = ] 'table_name'  
          [ , [ @table_owner = ] 'owner' ] 
     [ , [ @table_qualifier = ] 'qualifier' ] 
          [ , [ @index_name = ] 'index_name' ] 
     [ , [ @is_unique = ] 'is_unique' ]
     [ , [ @accuracy = ] 'accuracy' ]

引数

  • [ @table_name= ] 'table_name'
    カタログ情報を返すために使用するテーブルを指定します。table_name のデータ型は sysname で、既定値はありません。ワイルドカードによるパターン照合はサポートされていません。

  • [ @table_owner= ] 'owner'
    カタログ情報を返すために使用するテーブルの所有者の名前を指定します。table_owner のデータ型は sysname で、既定値は NULL です。ワイルドカードによるパターン照合はサポートされていません。owner を指定しない場合は、基になる DBMS の既定のテーブル可視性規則が適用されます。

    SQL Server では、指定された名前のテーブルを現在のユーザーが所有している場合、そのテーブルのインデックスが返されます。owner を指定せず、また指定した name のテーブルを現在のユーザーが所有していない場合は、データベース所有者が所有する、指定した name のテーブルが検索されます。テーブルが存在する場合は、そのテーブルのインデックスが返されます。

  • [ @table_qualifier= ] 'qualifier'
    テーブル修飾子の名前です。qualifier のデータ型は sysname で、既定値は NULL です。さまざまな DBMS 製品で、テーブル名には 3 つの要素から成る名前 (qualifier**.owner.**name) がサポートされています。SQL Server では、このパラメータはデータベース名を表します。製品によっては、テーブルのデータベース環境のサーバー名を表す場合があります。

  • [ @index_name= ] 'index_name'
    インデックス名を指定します。index_name のデータ型は sysname で、既定値は % です。ワイルドカードによるパターン照合がサポートされています。

  • [ @is_unique= ] 'is_unique'
    一意インデックスのみ (Y の場合) が返されるかどうかを指定します。is_unique のデータ型は char(1) で、既定値は N です。

  • [ @accuracy= ] 'accuracy'
    統計の基数および統計のページの精度を指定します。accuracy のデータ型は char(1) で、既定値は Q です。基数およびページの精度が維持されるように統計を更新するには、E を指定します。

    E (SQL_ENSURE) を指定すると、ドライバで無条件に統計が取得されます。

    Q (SQL_QUICK) を指定すると、サーバーからすぐに取得できる場合のみ、ドライバで基数とページが取得されます。この場合、ドライバで取得される値が最新であるかどうかは保証されません。Open Group 標準に従って記述されているアプリケーションは常に、ODBC 3.x 準拠のドライバから SQL_QUICK 動作を取得します。

結果セット

列名

データ型

説明

TABLE_QUALIFIER

sysname

テーブル修飾子の名前。この列は、NULL の場合もあります。

TABLE_OWNER

sysname

テーブル所有者の名前。この列は常に値を返します。

TABLE_NAME

sysname

テーブル名。この列は常に値を返します。

NON_UNIQUE

smallint

NULL 以外です。

0 = 一意

1 = 一意ではない

INDEX_QUALIFIER

sysname

インデックス所有者の名前。DBMS 製品の中には、テーブル所有者以外のユーザーでもインデックスを作成できるものがあります。SQL Server では、この列は常に TABLE_NAME と同じです。

INDEX_NAME

sysname

インデックスの名前。この列は常に値を返します。

TYPE

smallint

この列は常に値を返します。

0 = テーブルの統計

1 = クラスタ化

2 = ハッシュ化

3 = 非クラスタ化

SEQ_IN_INDEX

smallint

インデックス内での列の位置。

COLUMN_NAME

sysname

返される TABLE_NAME の各列の列名。この列は常に値を返します。

COLLATION

char(1)

照合順序で使用されている並べ替え順。有効値は次のとおりです。

A = 昇順

D = 降順

NULL = 適用なし

CARDINALITY

int

テーブル内の行数またはインデックス内の一意な値の個数。

PAGES

int

インデックスまたはテーブルを格納するページ数。

FILTER_CONDITION

varchar(128)

SQL Server では値は返されません。

戻り値

なし

説明

結果セットのインデックスは、NON_UNIQUETYPEINDEX_NAME、および SEQ_IN_INDEX の各列による昇順で表示されます。

クラスタ化インデックス型は、テーブルのデータがインデックスの順に格納されているインデックス型を指します。これは、SQL Server のクラスタ化インデックスに対応します。

ハッシュ化インデックス型は、完全一致検索または範囲検索を受け付けますが、パターン照合検索ではインデックスは使用されません。

sp_statistics は ODBC の SQLStatistics に相当します。返される結果は、NON_UNIQUETYPEINDEX_QUALIFIERINDEX_NAMESEQ_IN_INDEX の順序に従って並べ替えられます。詳細については、ODBC API リファレンスに関する Web ページを参照してください。

権限

スキーマに対する SELECT 権限が必要です。