LoginSignup
7
9

More than 3 years have passed since last update.

[Oracle Cloud] AWR レポートと、AWR SQL レポートを出力してみた

Posted at

AWR レポートとは

AWR(Automatic Workload Repository)レポートとは、Oracle Database に備わっている性能分析ツールです。Oracle Cloud の Database Cloud Service (DBCS) の Enterprise Edition 以上で利用できます。オンプレミスでも利用できます。RDBMS を運用していくと、パフォーマンスの問題に直面する時があります。AWR レポートを使うことで、パフォーマンスの把握・分析に掛かる時間を短縮可能です。

ADR レポートを取得するには、次の3つの方法があります。

  • コマンドライン
  • Enterprise Manager
  • Oracle SQL Developper

Enterprise Manager・Oracle SQL Developper には、AWR レポート以外にも便利な機能があり、手に馴染む方を使っていくと良いでしょう。

AWR レポートには、大きくわけて2種類の出力形式があります。

  • Oracle Database インスタンス全体の性能に関するレポート
  • SQL クエリー単体の性能に関するレポート

まずは、インスタンス全体の性能に関するレポートを見て行き、遅いSQLクエリーを見つけた後、SQL クエリー単体の性能に関するレポートを見て行くと良いでしょう。

AWR レポートの取得方法を紹介していきます。

AWR レポートの取得方法

Enterprise Manager を使った AWR レポートの取得方法を紹介します。Enterprise Manager で DBCS インスタンスをモニタリングする方法はこちらを参考に出来ます。

自分の使っている環境では、既にDBCS の CDB(コンテナDB) を Enterprise Manager でモニタリングしています。Enterprise Manager のメニューから、AWR レポートを選択します。

1597049743778.png

DBCS Enterprise Edition 以上では、AWR スナップショットが、自動的に1時間に1回取得されます。AWR レポートは、2つのスナップショット間で性能を比較・分析して、レポートを生成する仕組みとなっています。比較対象の2個のスナップショットを選択します。

1597050008583.png

スナップショット ID が 132 のものを選んでみます。

1597050059229.png

132 が選択されました。同様に2個目のスナップショットを選択します。

1597050112557.png

レポートの生成を押します。

1597050141151.png

実行中となり、すぐに AWRレポートが表示されます。

1597050181753.png

AWR レポートで重要な項目はいくつもありますが、その中の一つに「SQL ordered by Elapsed Time」があります。これは、2つのスナップショットの期間で、実行時間が長い順で SQL がリストされています。実行時間の上位のものは、チューニング対象にすると効果的なものが羅列されていると考えてよいでしょう。実行時間が短いものをチューニングしてもあまり効果的ではないですからね。

一番上に書かれている 3s6k25rtj9pmx をクリックすると、実際の SQL 文が確認できます。

1597050288502.png

SQL の全文が確認できるので、どういった処理に一番時間が掛かっているか簡単に把握できます。

1597053326034.png

AWR SQL レポートを取得

時間の掛かっているSQLがわかったので、どういったチューニングが有効か検討するために、SQL の実行計画が気になってきます。AWR SQL レポートを使うことで、AWR スナップショットに保管されている実行計画を出力できます。これで、過去の問題が発生していた SQL の実行計画を基に、対策を検討できます。

AWR SQL レポートは、Enterprise Manager では取得方法がわからなかったため、Oracle SQL Developper を使って取得をしていきます。

SQL Developper そのもののインストールや接続方法はこちらを確認してください。

まず、OCI DBCS へ接続出来ている状態から、VIew → DBA を選択します。

1597054428344.png

Performance → AWR → SQL Report Viewer を選択します。

1597054496619.png

Enterprise Manager で AWR Report を出力した時に入力した Snapshot ID と、分析したい SQL の SQL ID を入力して、実行ボタンを押します。

1597054627057.png

AWR SQL レポートが出力され、この中に SQL を実行したときの実行計画が見えます。ここで見えている実行計画を、性能対策の材料に出来ます。

1597054704046.png

AWR SQL レポートを HTML として保存するためには、フロッピーアイコンを押します。

1597054786459.png

名前を入れて Save をおします

1597054835632.png

Sample Report

自分の環境で取得した AWR Report と、AWR SQL Report を GitHub に公開しています。 Download ZIP から、ローカル上で HTML ファイルを開いて確認が可能です。

  • awr_report_132_143.html : AWR Report
  • SQL_Report_3s6k25rtj9pmx.html : AWR SQL Report

1597055534951.png

余談 SQL の実行計画を出力する方法

今回の手順では、AWR のスナップショットから、AWR SQL レポートを出力して実行計画を確認しました。次のURL では4つの取得方法が紹介されています。適宜参照して最適な方法を確認していくとよいでしょう。

1597053466042.png

参考URL

http://ichannel.tokyo/technoracle/awr%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%EF%BC%94%E3%81%A4%E3%81%AE%E3%83%90%E3%83%AA%E3%82%A8%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A8%E5%87%BA%E5%8A%9B%E6%96%B9%E6%B3%95/3579/

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9