メインコンテンツまでスキップ

CREATE ANALYZE

CREATE ANALYZE

Description

自動的にCBO(コストベースの最適化)統計情報を収集するためのカスタムコレクションタスクをカスタマイズすることができます。

デフォルトでは、StarRocksはテーブルの全統計情報を自動的に収集します。データの変更を5分ごとにチェックし、データの変更が検出されると自動的にデータの収集がトリガされます。自動の全コレクションを使用したくない場合、FEの設定項目 enable_collect_full_statisticfalse に設定し、カスタムなコレクションタスクを作成することができます。

カスタムな自動コレクションタスクを作成する前に、自動の全コレクションを無効にする必要があります(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を参照してください。