CBO の統計収集
このトピックでは、CelerData CBO の基本概念と CBO のための統計収集方法について説明します。CelerData は、正確なデータ分布統計を収集するためにヒストグラムを導入しています。
CBO とは
コストベースオプティマイザ (CBO) は、クエリ最適化において重要です。SQL クエリが CelerData に到着すると、論理実行計画に解析されます。CBO は論理計画を複数の物理実行計画に書き換え、変換します。CBO はその後、計画内の各 Operator の実行コスト(CPU、メモリ、ネットワーク、I/O など)を推定し、最もコストの低いクエリパスを最終的な物理計画として選択します。
CelerData CBO はデフォルトで有効になっています。Cascades フレームワークに基づいて開発された CelerData CBO は、さまざまな統計情報に基づいてコストを推定し ます。数万の実行計画の中から最もコストの低い実行計画を選択することができ、複雑なクエリの効率とパフォーマンスを大幅に向上させます。
統計は CBO にとって重要です。これらはコスト推定が正確で有用であるかどうかを決定します。以下のセクションでは、統計情報の種類、収集ポリシー、および統計の収集方法と統計情報の表示方法について詳しく説明します。
統計情報の種類
CelerData は、コスト推定の入力としてさまざまな統計を収集します。
基本統計
デフォルトで、CelerData はテーブルとカラムの以下の基本統計を定期的に収集します。
- row_count: テーブル内の総行数
- data_size: カラムのデータサイズ
- ndv: カラムのカーディナリティ、つまりカラム内の異なる値の数
- null_count: カラム内の NULL 値を持つデータの量
- min: カラム内の最小値
- max: カラム内の最大値
基本統計は _statistics_.table_statistic_v1
テーブルに保存されます。このテーブルは、CelerData クラスターの _statistics_
データベースで確認できます。