SQL Engine Reference (v11)

dbo.fSQLStatistics

この関数は、テーブルに関する統計情報の一覧と、そのテーブルに関連付けられているインデックスを 1 つの結果セットとして返します。

構文

dbo.fSQLStatistics (<'database_qualifier' | null>, <'table_name' | null>,  
    <'unique' | null>)  

引数

表 122 dbo.fSQLStatistics の引数
パラメーター
データ型
デフォルト値
説明
database_qualifier
VARCHAR
現在のデータベース
詳細を取得するデータベースの名前
table_name
VARCHAR
(デフォルト値なし)
列情報を要求するテーブルの名前。パターン検索がサポートされます(文字列検索パターンを参照してください)。
unique
SMALLINT
(デフォルト値なし)
インデックスの種類:
  • 0 = SQL_INDEX_UNIQUE
  • 1 = SQL_INDEX_ALL

返される結果セット

表 123 dbo.fSQLStatistics で返される結果セット
列名
データ型
説明
TABLE_QUALIFIER
VARCHAR
統計情報またはインデックスが適用されるテーブルを含んでいるデータベースの名前。データベースに適用されない場合は NULL。
TABLE_OWNER
VARCHAR
統計情報またはインデックスが適用されるテーブルのスキーマ名。データベースに適用されない場合は NULL。
TABLE_NAME
NULL でない VARCHAR
統計情報またはインデックスが適用されるテーブルの名前。
NON_UNIQUE
SMALLINT
インデックスが重複値を許可しないかどうかを示します。
  • 0 = SQL_FALSE - インデックス値が一意である必要がある場合。
  • 1 = SQL_TRUE - インデックス値が一意でなくてもよい場合。
TYPE が SQL_TABLE_STAT である場合は、NULL が返されます。
INDEX_QUALIFIER
VARCHAR
DROP INDEX を行うインデックス名を修飾するために使用されている識別子。インデックス修飾子がデータベースでサポートされない場合、または TYPE が SQL_TABLE_STAT である場合は、NULL が返されます。
INDEX_NAME
VARCHAR
インデックス名。TYPE が SQL_TABLE_STAT である場合は、NULL が返されます。
TYPE
NULL でない SMALLINT
返される情報の種類:
  • 0 = SQL_TABLE_STAT
  • 3 = SQL_INDEX_OTHER
SEQ_IN_INDEX
SMALLINT
インデックスにおける列のシーケンス番号(1 から始まります)。TYPE が SQL_TABLE_STAT である場合は、NULL が返されます。
COLUMN_NAME
VARCHAR
列名。列が PERSONID + NAME などのような式に基づている場合は、その式が返されます。式を判断できない場合は、空文字列が返されます。
TYPE が SQL_TABLE_STAT である場合は、NULL が返されます。
COLLATION
CHAR
列の並べ替え順。
A = 昇順
D = 降順
列の並べ替え順がデータベースでサポートされない場合、または TYPE が SQL_TABLE_STAT である場合は、NULL が返されます。
CARDINALITY
INTEGER
テーブルまたはインデックスの基数。
TYPE が SQL_TABLE_STAT である場合は、テーブル内の行数。TYPE が SQL_TABLE_STAT でない場合は、インデックスに含まれる一意な値の数。
この値をデータベースから入手できない場合は、NULL が返されます。
PAGES
INTEGER
インデックスまたはテーブルの格納に使用されるページ数。
TYPE が SQL_TABLE_STAT である場合は、テーブルのページ数。TYPE が SQL_TABLE_STAT でない場合は、インデックスのページ数。
この値をデータベースから入手できない場合、またはデータベースに適用されない場合は、NULL が返されます。
FILTER_CONDITION
VARCHAR
インデックスがフィルター選択されたインデックスである場合は、これは CLASSID > 150 などのようなフィルター条件になります。フィルター条件を判断できない場合、これは空文字列になります。
インデックスがフィルターされたインデックスでない場合、フィルターされたインデックスであるかどうかを判断できない場合、あるいは TYPE が SQL_TABLE_STAT である場合は、NULL になります。

次の例は、デフォルトの DEMODATA サンプル データベース中、文字 "c" で始まるすべてのテーブルの全インデックスに関する統計情報を返します。INDEX_NAME の NULL は除いてあります。文字列検索パターンも参照してください。

SELECT * FROM dbo.fSQLStatistics ('Demodata', 'c%', 1) WHERE INDEX_NAME IS NOT NULL 

結果セット(スペースを考慮して短縮されています):

TABLE_NAME   INDEX_NAME          COLUMN_NAME 
==========   ================    ==================== 
Class        UK_ID               ID 
Class        Class_Name          Name 
Class        Class_Name          Section 
Class        Class_seg_Faculty   Faculty_ID 
Class        Class_seg_Faculty   Start_Date 
Class        Class_seg_Faculty   Start_Time 
Class        Building_Room       Building_Name 
Class        Building_Room       Room_Number 
Class        Building_Room       Start_Date 
Class        Building_Room       Start_Time 
Course       Course_Name         Name 
Course       DeptName            Dept_Name 
 
12 行が影響を受けました。 

dbo.fSQLSpecialColumns

dbo.fSQLTables