ANALYZE TABLE
説明
CBO 統計情報を収集するための手動収集タスクを作成します。デフォルトでは、手動収集は同期操作です。非同期操作に設定することもできます。非同期モードでは、ANALYZE TABLE を実行した後、システムはこのステートメントが成功したかどうかをすぐに返します。ただし、収集タスクはバックグラウンドで実行され、結果を待つ必要はありません。タスクのステータスは SHOW ANALYZE STATUS を実行して確認できます。非同期収集はデータ量の多いテーブルに適しており、同期収集はデータ量の少ないテーブルに適しています。
手動収集タスクは作成後に一度だけ実行されます。手動収集タスクを削除する必要はありません。
このステートメントは v2.4 からサポートされています。
基本統計情報を手動で収集する
基本統計情報の詳細については、Gather statistics for CBO を参照してください。
構文
ANALYZE [FULL|SAMPLE] TABLE tbl_name (col_name [,col_name])
[WITH SYNC | ASYNC MODE]
PROPERTIES (property [,property])
パラメーターの説明
-
収集タイプ
- FULL: 完全収集を示します。
- SAMPLE: サンプル収集を示します。
- 収集タイプが指定されていない場合、デフォルトで完全収集が使用されます。
-
col_name: 統計情報を収集する列。複数の列はカンマ(,)で区切ります。このパラメーターが指定されていない場合、テーブル全体が収集されます。 -
PROPERTIES: カスタムパラメーター。PROPERTIESが指定されていない場合、fe.confファイルのデフォルト設定が使用されます。実際に使用されるプロパティは、SHOW ANALYZE STATUS の出力のProperties列で確認できます。
| PROPERTIES | Type | Default value | Description |
|---|---|---|---|
| statistic_sample_collect_rows | INT | 200000 | サンプル収集のために収集する最小行数。このパラメーターの値がテーブル内の実際の行数を超える場合、完全収集が実行されます。 |
例
例 1: 手動での完全収集
-- デフォルト設定を使用してテーブルの完全な統計情報を手動で収集します。
ANALYZE TABLE tbl_name;
-- デフォルト設定を使用してテーブルの完全な統計情報を手動で収集します。
ANALYZE FULL TABLE tbl_name;
-- デフォルト設定を使用してテーブル内の指定された列の統計情報を手動で収集します。
ANALYZE TABLE tbl_name(c1, c2, c3);
例 2: 手動でのサンプル収集
-- デフォルト設定を使用してテーブルの部分的な統計情報を手動で収集します。
ANALYZE SAMPLE TABLE tbl_name;
-- 収集する行数を指定して、テーブル内の指定された列の統計情報を手動で収集します。
ANALYZE SAMPLE TABLE tbl_name (v1, v2, v3) PROPERTIES(
"statistic_sample_collect_rows" = "1000000"
);
ヒストグラムを手動で収集する
ヒストグラムの詳細については、Gather statistics for CBO を参照してください。