次の方法で共有


sp_statistics (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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_namesysname で、既定値はありません。 ワイルドカード パターン マッチングはサポートされていません。

[ @table_owner = ] N'table_owner'

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

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

[ @table_qualifier = ] N'table_qualifier'

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

[ @index_name = ] N'index_name'

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

[ @is_unique = ] 'is_unique'

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

[ @accuracy = ] 'accuracy'

統計のカーディナリティとページ精度のレベル。 @accuracychar(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_UNIQUETYPEINDEX_NAME、および SEQ_IN_INDEXの列の昇順で表示されます。

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

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

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

アクセス許可

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

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

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

EXEC sp_statistics DimEmployee;