Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » クエリ処理 » クエリの最適化と実行 » オプティマイザの仕組み » オプティマイザの推定とカラム統計

 

オプティマイザによるカラム統計の使用方法

オプティマイザが使用するカラム統計のもっとも重要なコンポーネントは、「ヒストグラム」です。ヒストグラムは、単一カラムの値の分散に関する情報を格納します。SQL Anywhere では、ヒストグラムはカラムのデータ分散を表します。これは、カラムのドメインを連続する値の範囲集合 (「バケット」とも呼ばれる) に分け、値の範囲 (バケット) それぞれに収まるカラム値のあるテーブルのロー数を記憶することで表されます。

SQL Anywhere では、テーブルの多数のローにある単一のカラム値が特に注目されます。重要な単一値の選択性は、単集合のヒストグラム・バケット (たとえば、カラム・ドメインの単一の値を包含するバケット) で管理されます。SQL Anywhere は、各ヒストグラムの単集合バケットの数を最小限に抑えようとします。その数は、テーブルのサイズによって決まりますが、通常 10 から 100 の間です。また、選択性が 1% より大きい単一値はすべて単集合バケットとして管理されます。その結果、あるカラムのヒストグラムは、そのカラムの単一値の選択性のうち上位 N 個を記憶します。ここで N の値は、テーブルのサイズと 1% より大きい単一値の選択性の数によって決まります。

いったん値の範囲の数が最小数に達すると、頻度の高い選択性が出現するごとに頻度の低い選択性を置き換えます。ヒストグラムは、選択性が 1% より大きい値が十分あると判断した場合のみ、最小数を超える単集合の値の範囲を持ちます。

カラム統計の詳細については、SYSCOLSTAT システム・ビューを参照してください。