sp_statistics (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

Transact-SQL 構文表記規則

構文

sp_statistics
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @index_name = ] N'index_name' ]
    [ , [ @is_unique = ] 'is_unique' ]
    [ , [ @accuracy = ] 'accuracy' ]
[ ; ]

Note

この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。

引数

[ @table_name = ] N'table_name'

カタログ情報を返すために使用するテーブルを指定します。 @table_nameは sysname で、既定値はありません。 ワイルドカード パターン マッチングはサポートされていません。

[ @table_owner = ] N'table_owner'

カタログ情報を返すために使用されるテーブルのテーブル所有者の名前。 @table_ownerは sysname で、既定値は NULL. ワイルドカード パターン マッチングはサポートされていません。 指定しない場合 owner は、基になるデータベース管理システム (DBMS) の既定のテーブル可視性ルールが適用されます。

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

[ @table_qualifier = ] N'table_qualifier'

テーブル修飾子の名前。 @table_qualifierは sysname で、既定値は NULL. さまざまな DBMS 製品では、テーブルの 3 部構成の名前付け (<qualifier>.<owner>.<name>) がサポートされています。 SQL Server では、このパラメーターはデータベース名を表します。 一部の製品では、テーブルのデータベース環境のサーバー名を表します。

[ @index_name = ] N'index_name'

インデックス名。 @index_nameは sysname で、既定値は %. ワイルドカードのパターン マッチングがサポートされています。

[ @is_unique = ] 'is_unique'

一意のインデックス (場合 Y) のみを返すかどうか。 @is_uniqueは char(1) で、既定値は空の文字列です。

[ @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 = Nonclustered
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_UNIQUETYPE、および INDEX_NAMESEQ_IN_INDEX.

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

インデックスの種類 Hashed は完全一致または範囲検索を受け入れますが、パターン マッチング検索ではインデックスは使用されません。

システム ストアド プロシージャは sp_statistics ODBC と同等 SQLStatistics です。 返される結果は、およびで並べ替えますNON_UNIQUETYPEINDEX_QUALIFIERINDEX_NAMESEQ_IN_INDEX 詳細については、ODBC リファレンスを 参照してください

アクセス許可

スキーマに対する SELECT アクセス許可が必要です。

例: Azure Synapse Analytics and Analytics Platform System (PDW)

次の例では、サンプル データベースからテーブルに DimEmployee 関する情報を AdventureWorks 返します。

EXEC sp_statistics DimEmployee;