メインコンテンツまでスキップ
バージョン: 2.5

CREATE ANALYZE

説明

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 列で確認できます。

PROPERTIESTypeDefault valueDescription
statistic_auto_collect_ratioFLOAT0.8自動収集の統計が健全かどうかを判断するための閾値。統計の健全性がこの閾値を下回る場合、自動収集がトリガーされます。
statistics_max_full_collect_data_sizeINT100自動収集がデータを収集するための最大パーティションサイズ。単位: GB。パーティションがこの値を超える場合、完全収集は破棄され、サンプル収集が代わりに行われます。
statistic_sample_collect_rowsINT200000収集する最小行数。このパラメータ値がテーブルの実際の行数を超える場合、完全収集が行われます。

例 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 を参照してください。