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 の使用法 » クエリ処理 » クエリの最適化と実行 » オプティマイザの仕組み » オプティマイザの推定とカラム統計

 

カラム統計の更新によるオプティマイザのパフォーマンス向上

カラム統計は、データベースのシステム・テーブル ISYSCOLSTAT に永久的に格納されます。オプティマイザのパフォーマンスを継続的に向上させるために、データベース・サーバは SELECT 文、INSERT 文、UPDATE 文、DELETE 文の処理中に、自動的にカラム統計を更新します。これは、テーブルやカラムを参照する述部に一致するローの数をモニタリングし、その数を推定されたローの数と比較し、必要に応じて既存の統計を更新することで行います。

利用可能なカラム統計の精度が高くなると、それに従ってオプティマイザがより適切に推定を計算できるため、以降のクエリのパフォーマンスが向上します。

データベース・オプションを使用して、カラム統計を更新するかどうかを設定できます。update_statistics データベース・オプションは、クエリの実行中にカラム統計を更新するかどうかを指定します。collect_statistics_on_dml_updates データベース・オプションは、LOAD、INSERT、DELETE、UPDATE などのデータを変更する DML 文の実行中に統計を更新するかどうかを指定します。

統計が現在のカラムの値を正確に反映していないためにパフォーマンスが悪いと考えられる場合は、CREATE STATISTICS 文や DROP STATISTICS 文を実行します。CREATE STATISTICS は古い統計を削除して新しい統計を作成し、DROP STATISTICS は古い統計だけを削除します。

CREATE INDEX 文を実行すると、インデックスの統計が自動的に作成されます。

LOAD TABLE 文を実行すると、テーブルの統計が自動的に作成されます。

参照