OBをトコトン極める

Oracle 統計情報を取得する

  • 2018.04.13
  • 株式会社システムインテグレータ
Oracle 統計情報を取得する

今回はSI Object Browserを使用して、統計情報を取得してみようと思います。

影が薄いので気づかない方もいらっしゃるかと思いますが、SI Object Browserでテーブル・インデックス・クラスタの統計情報を取得することが出来ます。

SI Object Browserで統計情報といってもSI Object Browserがデータの統計をしている訳ではありません。

SI Object BrowserがOracleDBMS_STATSパッケージのプログラムを呼び出して実行をしております。

(※SI Object Browser for Oracle Ver.12.1.0以降でDBMS_STATSパッケージを使用しています。それより前のバージョンはAnalyze文を使用しております。)

統計情報の収集は急にパフォーマンスが低下したテーブルのパフォーマンスを回復させるために使用しますが、複数テーブル有った場合にコマンドを書くのが手間です。SI Object Browserでは対象のテーブルを選択した状態で統計情報画面を呼び出し、[開始]ボタンを押すだけとなっております。

統計情報を使うには

テーブル・インデックス・クラスタを選択した状態で、右クリックメニューより遷移します。

(※複数選択して実行することも可能です。)

orastat_001

 - 右クリックメニューから統計情報ボタン -

下記のような画面が表示されます。
このまま[開始]を押せば統計情報の収集が開始されます。

orastat_002

- 統計情報 -

オプションが気になる方もいるかと思いますので少し触れておきます。

主に使用するのは上の3つになります。

「正確な統計を収集する」はGATHER_TABLE_STATSプロシージャで一番単純なスキーマ名とテーブル名を指定しただけのものを実行します。

「推定の統計を収集する」は上記に加え、ESTIMATE_PERCENTオプション付きのものを実行します。

「統計情報を削除する」はDELETE_TABLE_STATSプロシージャで一番単純なスキーマ名とテーブル名を指定しただけのものを実行します。 

実行後、本当に収集できたか心配な方は下記のようにDBA_TABLESのLAST_ANALYZED列を確認してください。

orastat_003

SQLで確認 -

 
いかがだったでしょうか。統計情報の取得・削除はパフォーマンスに関わりますので本番環境で気軽に試すような代物ではありませんが、必要になった際には是非ご利用ください。

いまさら聞けない Oracleの基本

いまさら聞けない Oracleの基本