GAGA LIFE.

DBAブログ

Oracle 統計情報の収集(DBMS_STATSの各プロシージャのパラメータ)

概要

統計情報の収集のために、DBMS_STATSパッケージにはいくつかのプロシージャが用意されていますが、それぞれの特徴やパラメータについてまとめます。

各プロシージャについて

システム特性や取得対象に応じてデータベース全体/データディクショナリ/スキーマ/単一オブジェクトに対して統計情報を収集するプロセスが発生する必要があり、いくつかのプロシージャがあります。

プロシージャ 説明
gather_database_stats データベース全体のオブジェクト統計を収集
gather_dictionary_stats データディクショナリの統計を収集
データディクショナリは、sysスキーマに格納されているオブジェクトで構成されているだけでなく、オプションのコンポーネント用にOracleによってインストールされた他のスキーマも含みます。
gather_fixed_objects_stats 固定表(X$表)とデータディクショナリの一部である特定のオブジェクトの統計を収集
動的パフォーマンスビューでよく使用される固定表メモリ構造のみです。
どの表がこのプロシージャに関連しているかを知るには、v$fixed_tableを確認することで確認可能です。
※ただし、固定されたテーブルごとにオブジェクト統計が収集されるわけではない
gather_table_stats スキーマ全体のオブジェクト統計を収集
gather_table_stats 列を含む1つの表、およびオプションで索引のオブジェクト統計を収集
gather_index_stats 1つの索引のオブジェクト統計を収集

Note:
統計情報の収集は、DBMS_STATSパッケージの使用以外にも動作しています。
例えば、CREATE INDEXおよびALTER INDEX文は、索引作成の際に統計情報を自動的に収集します。
さらに、12.1以降では、CTAS文と空テーブルへのDIRECT PATH INSERTにより、統計が自動的に収集されます。
※DBMS_STATSパッケージによる統計の計算は、自動的に収集されたものより優れている可能性があることに注意

各パラメータの範囲と使用方法

  • DBMS_STATSパッケージによって提供されるプロシージャには、3つの主要なカテゴリに
    グループ化できるいくつかのパラメータがあります。
    • 第1グループ:ターゲットオブジェクトの指定
    • 第2グループ:収集オプションの指定
    • 第3グループ:現在の統計を上書きする前にバックアップするか否かの指定

統計収集に使用されるプロシージャのパラメータ

Parameter Database Dictionary Fixed Objects Schema Table Index
Taget Objects
ownname
indname
tabname
partname
comp_id
granularity
cascade
gather_fixed
gather_sys
gather_temp
options ✓*
objlist
force
obj_filter_list
Gathering Options
estimate_percent
block_sample
method_opt
degree
no_invalidate
Backup Table
stattab
statid
statown

✓*12.1から利用可能

参考資料


Troubleshooting Oracle Performance, Second Edition
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス 12c リリース2 (12.2)