はじめに

こんにちは。Oracle Databaseの検証チームです。

Oracle Databaseの性能分析に便利なAWR(自動ワークロード・リポジトリ)レポート」の
取得方法から分析のポイント
まで、複数回にわたり連載させていただきます。

初回となる本稿では、AWRの概要とAWRレポートの取得方法をご紹介します。

今回の執筆者は以下に登場しています。是非ご覧ください!
ORACLE MASTER Bronze DBA 2019、ORACLE MASTER Silver DBA 2019を取得しました!

性能分析の意義

性能分析と聞くとハードルが高く感じてしまうかもしれません。
筆者も勉強中の身で、非常に共感できます。

しかしデータベースはシステムの根幹であり、
大量のデータを効率的に扱っていくには性能改善が非常に重要になります

案件ではお客様のシステムを観察していますが、言うまでもなく大量のデータを保有されており、
一操作に何秒もかかっていては極めて非効率のため、
「システム動いてるからいいよね!」と言っていられません。

性能分析は性能改善の第一歩で、
性能分析 → 問題調査及び対策の検討 → 改善施策の実施 → 改善後の性能状況の確認
というサイクルを回していきます。

このようなサイクルを回していくことで、より効率的な運用を叶えるのです。

AWRレポートとは

AWRとは

AWRとはAutomatic Workload Repositoryの略で、「自動ワークロード・リポジトリ」と言います。
Oracle Databaseの問題の検出および自己チューニングを目的として、
Databaseの統計情報とワークロード(処理負荷)情報を自動的に収集・管理する機能です。

AWRを使用するには、Enterprise Edition(EE)環境で、STATISTICS_LEVEL初期化パラメータを
「TYPICAL」(デフォルト)または「ALL」に設定する必要があります。

AWRスナップショットとは

AWRによって収集されたある時点のDatabaseの統計情報とワークロード情報のことを、
AWRスナップショットと呼びます。

MMONプロセスによって収集されたスナップショットはSYSAUX表領域に保存されます。
デフォルトでは60分間隔で収集され、8日間保存されます。この収集間隔と保存期間は変更可能です。
なお、保存期間を過ぎたスナップショットは自動的に削除されます。

AWRレポートとは

AWRレポートは、特定の2点のスナップショット間の稼働統計情報をもとにファイルとして出力したものです。
このレポートはHTMLもしくはテキスト形式の出力を選択可能で、データベース全体のアクティビティや待機イベントの状況を把握することができます。

AWRレポートの取得方法

Oracle 10gからあるawrrpt.sqlスクリプトを実行することでレポートを取得することができます。
awrrpt.sqlスクリプトは$ORACLE_HOME/rdbms/admin配下にあります。

awrrpt.sqlファイルの実行

awrrpt.sqlスクリプトを確認し、スクリプトが置かれているディレクトリに移動します。

$ ls -l $ORACLE_HOME/rdbms/admin/awrrpt.sql
$ cd $ORACLE_HOME/rdbms/admin

Oracle DatabaseにSYSユーザにログインできたら、awrrpt.sqlスクリプトを実行します。

SQL> @awrrpt.sql

 

awrrpt.sqlスクリプトで求められる入力項目

awrrpt.sqlスクリプトには、ユーザが入力を求められる箇所が 5つ あります。

入力項目 備考
出力形式 (report_type) 選択肢は、'html' 'text' 'active-html'です。
直近何日間のSnapshotsを出力するか (num_days)
AWRスナップショットの比較開始Snap Id
(begin_snap)
AWRスナップショットの比較終了Snap Id
(end_snap)
レポート名 (report_name) Enter押下で、デフォルトの出力ファイル名で出力されます。

 

実際のターミナル画面

それでは、実際のターミナル画面を見ていきましょう。

(1) 出力形式(report_type)
今回はブラウザでレポートを確認するために'html'を選択します。
ファイル形式はtextではなくデフォルトのhtmlをお勧めします。text形式はコピー&ペーストして報告書の作成などには便利ですが、長いSQL文が乗り切らず、途中で省略されてしまいます。HTML形式はSQLが全文出力されます。

(2) 直近何日間のSnapshotsを出力するか(num_days)
今回は過去3日分の履歴を出しています。

(3) AWRスナップショットの比較開始Snap Id(begin_snap)
今回は最新のSnapshotsから2番目のSnap ID「249」を指定します。

(4) AWRスナップショットの比較終了Snap Id(end_snap)
今回は最新のSnapshotsのSnap ID「250」を指定します。

(5) レポート名(report_name)
そのままEnter押下で、デフォルトの出力ファイル名を出力します。

以上でAWRレポートが生成されました。
sqlplusからexitすると、カレントディレクトリに指定したファイル名で出力されています。

出力されたAWRレポート

出力されたAWRレポートはカレントディレクトリにあります。
html形式で出力されたAWRレポートをブラウザで見ると、以下のような表示になります。
先頭ページのみ掲載していますが、本来はロングスクロールページとなっています。

さいごに

今回は性能分析の第一歩、AWRレポートの取得方法をご紹介しました。
次回からは実際にAWRレポートを読みながら、ポイントをご紹介できればと思います。

最後までお読みいただきありがとうございました!
次項もお楽しみに!

そのほか、Oracle パフォーマンスに関する記事もたくさんありますので、ぜひお読みください!

 

\Oracle Datebaseでお困りならプロを頼りましょう!/

Oracle関連のお悩みは弊社にお任せください
・Oracle関連の資格保持者ばかりのプロ集団
・オラクル社から何年にも渡りAwardを受賞
・導入実績多数の安心感
Oracleの課題、専門家が解決します


Oracleの相談を今すぐ依頼する

豊富な実績を持つプロが最適プランをご提案

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早8年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!
最新技術情報や資格情報をチェックしたいアナタ!毎日遊びに来てください。きっとお役に立てます。