CBO の統計情報を収集する
このトピックでは、StarRocks のコストベースオプティマイザ (CBO) の基本概念と、CBO が最適なクエリプランを選択するための統計情報の収集方法について説明します。StarRocks 2.4 では、正確なデータ分布統計を収集するためにヒストグラムが導入されました。
v3.2.0 以降、StarRocks は Hive、Iceberg、Hudi テーブルからの統計情報の収集をサポートしており、他のメタストアシステムへの依存を減らしています。構文は StarRocks 内部テーブルの収集と似ています。
CBO とは
CBO はクエリ最適化において重要です。SQL クエリが StarRocks に到着すると、論理実行プランに解析されます。CBO は論理プランを複数の物理実行プランに書き換え、変換します。その後、CBO はプラン内の各オペレーターの実行コスト(CPU、メモリ、ネットワーク、I/O など)を推定し、最もコストが低いクエリパスを最終的な物理プランとして選択します。
StarRocks CBO は StarRocks 1.16.0 で導入され、1.19 以降でデフォルトで有効になっています。Cascades フレームワークに基づいて開発された StarRocks CBO は、さまざまな統計情報に基づいてコストを推定します。数万の実行プランの中から最もコストの低い実行プランを選択することができ、複雑なクエリの効率とパフォーマンスを大幅に向上させます。
統計情報は CBO にとって重要です。これにより、コスト推定が正確で有用であるかどうかが決まります。以下のセクションでは、統計情報の種類、収集ポリシー、統計情報の収集方法、および統計情報の表示方法について詳しく説明します。
統計情報の種類
StarRocks は、コスト推定の入力としてさまざまな統計情報を収集します。