カラム統計は、データベースのシステム・テーブル 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 文を実行すると、テーブルの統計が自動的に作成されます。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |