Adaptive Server のコスト・ベースのオプティマイザは、クエリ内で指定されたテーブル、インデックス、カラムについての統計値を使用してクエリのコストを見積もります。オプティマイザは、最小コストであると判断したアクセス・メソッドを選択します。しかし統計値が正確でないと、正確なコストを見積もれません。
Sybase Central では、テーブルの統計の更新にウィザードを使用します。
update statistics は、ヒストグラムや密度などの、カラム関連の統計値を更新します。インデックス中のキー分布に、クエリでのインデックス使用に影響するような変更が発生したカラムでは、統計値を更新する必要があります。update statistics ウィザードの実行には、システム・リソースが必要です。他の管理タスクと同様、コマンドの実行は、サーバの負荷が軽い時間にスケジュールする必要があります。特に update statistics はインデックスのテーブル・スキャンかリーフレベル・スキャンを必要とし、I/O 競合が増加したり、ソートの実行のために CPU を使用したり、データ・キャッシュとプロシージャ・キャッシュを使用したりします。このようにリソースを使用するため、使用率が高いときに update statistics を実行すると、サーバ上で実行するクエリのパフォーマンスが低下することがあります。さらに、update statistics コマンドを実行するには、更新をブロックする共有ロックが必要です。
update statistics が自動的に実行されるように設定するには、Job Scheduler を有効にしておきます。update statistics ウィザードには、Adaptive Server リリース 15.0 以降のみを対象とする自動 update statistics 設定用の datachange スレッショルド画面があります。
インデックスの統計を更新できるのは、テーブル所有者またはデータベース所有者だけです。
update statistics をいつ実行するかは、datachange 関数で判定されます。datachange によって、update statistics が最後に実行された後にデータ分配で行われた変更の量が測定されます。具体的には、指定のオブジェクト、パーティション、カラムで発生した挿入、更新、削除の数が測定されます。これは、統計を更新することがクエリ・プランに役立つかどうかを判断する目安になります。
自動実行を設定すると、スレッショルドが datachange の値以下の場合に update statistics が実行されます。
datachange の詳細については、『ASE リファレンス・マニュアル:コマンド』を参照してください。
インデックスの統計を更新できるのは、テーブル所有者またはデータベース所有者だけです。
update statistics ウィザードを起動するには
統計を更新するインデックスを選択します。
[ファイル] − [統計の更新] を選択します。
統計の更新ウィザードの手順に従います。
インデックス・アイコンを右クリックします。ショートカット・メニューから [統計の更新] を選択します。
update
statistics を実行した後は、そのインデックスが定義されているテーブルを再コンパイルしてください。これによって、インデックスを使用するプロシージャとトリガで新しいキー分布が使用されるようになります。