統計情報の収集が完了した場合、または特定のテーブルに統計情報があるかどうかを確認したい場合、OceanBaseデータベースのオプティマイザーは、さまざまな統計情報を照会するための豊富なビューを提供します。
インデックスおよびテーブルレベルの統計情報のクエリ
テーブルレベルの統計情報とインデックスの統計情報については、以下のビューを照会することで取得できます。
モード |
ビュー名 |
説明 |
|---|---|---|
| Oracle | ALL_TAB_STATISTICS |
テーブルレベルの統計情報を照会するために使用されます |
| Oracle | DBA_TAB_STATISTICS |
テーブルレベルの統計情報を照会するために使用されます |
| Oracle | USER_TAB_STATISTICS |
テーブルレベルの統計情報を照会するために使用されます |
| Oracle | ALL_IND_STATISTICS |
インデックスの統計情報を照会するために使用されます |
| Oracle | DBA_IND_STATISTICS |
インデックスの統計情報を照会するために使用されます |
| Oracle | USER_IND_STATISTICS |
インデックスの統計情報を照会するために使用されます |
| MySQL | OCEANBASE.DBA_TAB_STATISTICS |
テーブルレベルの統計情報を照会するために使用されます |
| MySQL | OCEANBASE.DBA_IND_STATISTICS |
インデックスの統計情報を照会するために使用されます |
これらのビューで注意が必要なフィールドは以下の通りです:
NUM_ROWS:テーブルまたはインデックスの総行数。AVG_ROW_LEN:テーブルの平均行長。LAST_ANALYZED:収集日時。NULLではない場合、そのテーブルまたはインデックスの統計情報が収集されたことを示します。STATTYPE_LOCKED:テーブルの統計情報がロックされているかどうか。NULLではない場合、そのテーブルの統計情報がロックされていることを示します。
列レベルの統計情報のクエリ
列レベルの統計情報については、以下のビューを照会することで取得できます。
モード |
ビュー名 |
説明 |
|---|---|---|
| Oracle | ALL_TAB_COL_STATISTICS |
GLOBAL列レベルの統計情報を照会するために使用されます |
| Oracle | DBA_TAB_COL_STATISTICS |
GLOBAL列レベルの統計情報を照会するために使用されます |
| Oracle | USER_TAB_COL_STATISTICS |
GLOBAL列レベルの統計情報を照会するために使用されます |
| Oracle | ALL_PART_COL_STATISTICS |
PARTITION列レベルの統計情報を照会するために使用されます |
| Oracle | DBA_PART_COL_STATISTICS |
PARTITION列レベルの統計情報を照会するために使用されます |
| Oracle | USER_PART_COL_STATISTICS |
PARTITION列レベルの統計情報を照会するために使用されます |
| Oracle | ALL_SUBPART_COL_STATISTICS |
SUBPARTITION列レベルの統計情報を照会するために使用されます |
| Oracle | DBA_SUBPART_COL_STATISTICS |
SUBPARTITION列レベルの統計情報を照会するために使用されます |
| Oracle | USER_SUBPART_COL_STATISTICS |
SUBPARTITION列レベルの統計情報を照会するために使用されます |
| MySQL | OCEANBASE.DBA_TAB_COL_STATISTICS |
GLOBAL列レベルの統計情報を照会するために使用されます |
| MySQL | OCEANBASE.DBA_PART_COL_STATISTICS |
PARTITION列レベルの統計情報を照会するために使用されます |
| MySQL | OCEANBASE.DBA_SUBPART_COL_STATISTICS |
SUBPARTITION列レベルの統計情報を照会するために使用されます |
これらのビューで注意が必要なフィールドは以下のとおりです:
NUM_DISTINCT:列のndv。LOW_VALUE:列の最小値。HIGH_VALUE:列の最大値。DENSITY:列の密度、ヒストグラムに関連します。NUM_NULLS:列のNULL数。NUM_BUCKETS:ヒストグラムのバケット数。LAST_ANALYZED:収集された時間。NULLではない場合、その列の統計情報が過去の特定の時点で収集されていたことを示します。SAMPLE_SIZE:今回の統計情報収集で参照されたデータ行数。AVG_COL_LEN:平均列長。HISTOGRAM:ヒストグラムタイプ。NULLではない場合、その列でヒストグラムが収集されていることを示します。
列のヒストグラム統計情報の照会
ヒストグラム統計情報については、以下のビューを照会することで取得できます。
モード |
ビュー名 |
説明 |
|---|---|---|
| Oracle | ALL_TAB_HISTOGRAMS |
GLOBAL列レベルのヒストグラム情報を照会するために使用されます |
| Oracle | DBA_TAB_HISTOGRAMS |
GLOBAL列レベルのヒストグラム情報を照会するために使用されます |
| Oracle | USER_TAB_HISTOGRAMS |
GLOBAL列レベルのヒストグラム情報を照会するために使用されます |
| Oracle | ALL_PART_HISTOGRAMS |
PARTITION列レベルのヒストグラム情報を照会するために使用されます |
| Oracle | DBA_PART_HISTOGRAMS |
PARTITION列レベルのヒストグラム情報を照会するために使用されます |
| Oracle | USER_PART_HISTOGRAMS |
PARTITION列レベルのヒストグラム情報を照会するために使用されます |
| Oracle | ALL_SUBPART_HISTOGRAMS |
SUBPARTITION列レベルのヒストグラム情報を照会するために使用されます |
| Oracle | DBA_SUBPART_HISTOGRAMS |
SUBPARTITION列レベルのヒストグラム情報を照会するために使用されます |
| Oracle | USER_SUBPART_HISTOGRAMS |
SUBPARTITION列レベルのヒストグラム情報を照会するために使用されます |
| MySQL | OCEANBASE.DBA_TAB_HISTOGRAMS |
GLOBAL列レベルのヒストグラム統計情報を照会するために使用されます |
| MySQL | OCEANBASE.DBA_PART_HISTOGRAMS |
PARTITION列レベルのヒストグラム情報を照会するために使用されます |
| MySQL | OCEANBASE.DBA_SUBPART_HISTOGRAMS |
SUBPARTITION列レベルのヒストグラム情報を照会するために使用されます |
これらのビューで注意が必要なフィールドは以下のとおりです:
ENDPOINT_NUMBER:現在のバケットまでに累積された列の総行数。ENDPOINT_ACTUAL_VALUE:現在のバケットの終端値に対応する出力文字の面値。ENDPOINT_REPEAT_COUNT:現在のバケットの終端値の頻度。