CREATE ANALYZE
CREATE ANALYZE
Description
自動的にCBO(コストベースの最適化)統計情報を収集するためのカスタムコレクションタスクをカスタマイズすることができます。
デフォルトでは、StarRocksはテーブルの全統計情報を自動的に収集します。データの変更を5分ごとにチェックし、データの変更が検出されると自動的にデータの収集がトリガされます。自動の全コレクションを使用したくない場合、FEの設定項目 enable_collect_full_statistic
を false
に設定し、カスタムなコレクションタスクを作成することができます。
カスタムな自動コレクションタスクを作成する前に、自動の全コレクションを無効にする必要があります(enable_collect_full_statistic = false
)。そうしないと、カスタムタスクは効果を発揮しません。
このステートメントはv2.4からサポートされています。
構文
-- 全てのデータベースの統計情報を自動的に収集します。
CREATE ANALYZE [FULL|SAMPLE] ALL PROPERTIES (property [,property])
-- 指定したデータベース内の全てのテーブルの統計情 報を自動的に収集します。
CREATE ANALYZE [FULL|SAMPLE] DATABASE db_name
PROPERTIES (property [,property])
-- 指定したテーブルの指定した列の統計情報を自動的に収集します。
CREATE ANALYZE [FULL|SAMPLE] TABLE tbl_name (col_name [,col_name])
PROPERTIES (property [,property])
パラメータの説明
- コレクションタイプ
- FULL: フルコレクションを示します。
- SAMPLE: サンプルコレクションを示します。
- コレクションタイプが指定されていない場合、デフォルト ではフルコレクションが使用されます。
col_name
: 統計情報を収集する列。複数の列をカンマ(,
)で区切ります。このパラメータが指定されない場合、テーブル全体が収集されます。PROPERTIES
: カスタムパラメータ。PROPERTIES
が指定されていない場合、fe.conf
のデフォルト設定が使用されます。実際に使用されるプロパティは、SHOW ANALYZE JOBの出力のProperties
列で確認できます。
PROPERTIES | Type | デフォルト値 | 説明 |
---|---|---|---|
statistic_auto_collect_ratio | FLOAT | 0.8 | 自動収集の統計情報が健全かどうかを判断するための閾値です。統計の健全性がこの閾値を下回る場合、自動収集がトリガされます。 |
statistics_max_full_collect_data_size | INT | 100 | 自動収集がデータを収集する最大のパーティションのサイズです。単位: GB。パーティションがこの値を超える場合、フルコレ クションは破棄され、サンプルコレクションが代わりに実行されます。 |
statistic_sample_collect_rows | INT | 200000 | 収集する最小の行数です。このパラメータの値がテーブルの実際の行数を超える場合、フルコレクションが実行されます。 |
例
例1: 自動的なフルコレクション
-- 全てのデータベースのフル統計情報を自動的に収集します。
CREATE ANALYZE ALL;
-- データベースのフル統計情報を自動的に収集します。
CREATE ANALYZE DATABASE db_name;
-- データベース内の全てのテーブルのフル統計情報を自動的に収集します。
CREATE ANALYZE FULL DATABASE db_name;
-- テーブルの指定した列のフル統計情報を自動的に収集します。
CREATE ANALYZE TABLE tbl_name(c1, c2, c3);
例2: 自動的なサンプルコレクション
-- データベース内の全てのテーブルの統計情報をデフォルト設定で自動的に収集します。
CREATE ANALYZE SAMPLE DATABASE db_name;
-- テーブルの指定した列の統計情報を収集します。統計の健全性と収集する行数を指定します。
CREATE ANALYZE SAMPLE TABLE tbl_name(c1, c2, c3) PROPERTIES(
"statistic_auto_collect_ratio" = "0.5",
"statistic_sample_collect_rows" = "1000000"
);
参考
SHOW ANALYZE JOB: カスタムコレクションタスクのステータスを表示します。
DROP ANALYZE: カスタムコレクションタスクを削除します。
KILL ANALYZE: 実行中のカスタムコレクションタスクをキャンセルします。
CBOの統計情報の収集についての詳細については、Gather statistics for CBOを参照してください。