Shenkaoziliao:
ブログのこのシリーズは、主にCenkaoziliao CUUGデータベースRannaiギャング教師の授業ノートを持って、「SQL最適化コアアイデア」(Luobingセン、黄チャオ忠交通と)、「PostgreSQLの内側:クエリの最適化の深さ」(張Shujieのa)に、ランク付け順不同インチ
1つの統計説明
データベース内のデータは、簡単な例を挙げ変更し、実施計画及び時にはダイナミックになっている、今日の商品IDの特定のテーブルには、均等に分散され、その後のプロモーションは、本製品に対応するID作ることデータ爆発、インデックスはどこへ行く元のクエリは、テーブル全体を行くことがあります。モニタリングは人工テーブルの変更が不可能であると達成できないです。ただし、オプティマイザはこの仕事をしてきた、オプティマイザは自動的に実施計画を調整します。
そこで問題は、オプティマイザを行う方法、です。
まず、リレーショナルデータベースは、数学、関係代数の完全な理論的基礎を持っている、それは同等の変動に基づいてすることができ、より優れた実行計画を提供しています。
しかし、等価変換は、基本ルールを最適化し、これらの等価なバリエーション、およびアクセスパスの変更(インデックス読み取りまたはフルテーブルスキャン)だけでなく、いくつかの参照データを有することができ、参照データ、これらの統計ということです。
2つの統計の収集スクリプト、
ベギン
DBMS_STATS.GATHER_TABLE_STATSスキーマ(ownname => 'SCOTT'、
TABNAME => 'TEST1'
ESTIMATE_PERCENT => 100、
METHOD_OPT => 'COLUMNSのOWNERサイズSKEWONLY FOR'、
NO_INVALIDATE => FALSE、
DEGREE => 1、
CASCADE => TRUE)。
終わり;
/
以下に、独自のオンラインアクセスの内側に、私たちはここだけMETHOD_OPTについて話を集中し、このパラメータの誰もが、このコラムでは、ヒストグラムの生成を決めました。
だから、何であるか、ヒストグラム、それを、単に、ヒストグラムは、列のデータを均等に分散した状態を説明し、これは重要なパラメータのオプティマイザは、アクセス・パスとテーブルの接続を選択しています。
3つの拡張統計
列の統計情報を収集するために、オプティマイザが良い実行計画が選ばれたことはありません。時には、ちょうど、あなたは統計情報の収集、その調査その希望を拡張され、一緒に複数の列を収集する必要があります。