オプティマイザ統計(コスト)とは
OracleはSQLを実行する上でコンピュータリソースを効率的に活用するために実行計画を作成します。その実行計画を作成する上で元となる情報がオプティマイザ統計(コスト)情報です。そのオプティマイザ統計(コスト)情報を理解することでSQLのパフォーマンスにどのように影響するかを理解することでパフォーマンス向上に寄与します
オプティマイザ統計(コスト)とは
オプティマイザ統計(コスト)は、データベースとそのオブジェクトに関する詳細情報を記述するデータの集合です。これらの統計は、問合せオプティマイザで各SQL文に最適の実行計画を選択するために使用されます
オプティマイザ統計には次のものがあります
◆表統計
–行数
–ブロック数
–行の平均長
◆列統計情報
–列内の個別値(NDV: Number of Distinct Value)数
–列内のNULL数
–データ配分(ヒストグラム)
◆索引統計
–リーフ・ブロック数
–レベル
–クラスタ化係数
◆システム統計
–I/Oパフォーマンスと使用率
–CPUパフォーマンスと使用率
コストとは、Oracleが内部で処理量を判断するために使う尺度のことです
【統計情報の取得について】
◆初期化パラメータ statistics_level=‘TYPICAL’
デフォルト設定のTYPICALでは、データベースの自動管理機能で必要とされるすべての主要統計が収集され、全体的なパフォーマンスが最適化されます
◆取得条件
–新規に作成された表やオプティマイザ統計情報を削除された表
–監視される表の変更が10%を超えた場合、これらの統計は失効したものとみなされ再度収集されます
◆ディフォルト取得時間
–月~金の 22:00 ~ 2:00
–土~日の 6:00 ~ 2:00
◆オプティマイザ統計情報取得JOB
–GATHER_STATS_JOB