AWR(Automatic Workload Repository) SQLレポートの取得方法を紹介します。
AWRとはOracle Databaseの稼働統計とワークロード情報のスナップショットを自動的に収集・管理する機能です。
収集されたスナップショットとスナップショットの間隔でデータベース全体の統計の中にある、
SQL単体のレポートのことを「AWR SQLレポート」といいます。
なおAWR利用には「Diagnostic Pack」のライセンスが追加で必要になります。
目次
AWR SQLレポートとは?
AWR SQLレポートとは、AWRレポートの内1つのSQLに特化したものを指します。
AWRレポートはデータベース全体なのに対して、AWR SQLレポートはSQL単体のレポートになります。
AWR SQLレポートの使い方は、
- AWRレポートを確認し悪さをしているSQLを特定
- 特定したSQLのAWR SQLレポート確認し、なぜ性能が悪くなったか調査
という流れになります。 なので、いきなりAWR SQLレポートを取得するといったことはしません。
AWR SQLレポートを取得
AWR SQLのレポートの取得方法は、SQL*PlusにSYSユーザでログインし以下のSQLを実行します。
実行した時のカレントディレクトリにレポートが保存されますので注意してください。
@?/rdbms/admin/awrsqrpt.sql
対話式で取得するレポートの指定をしていきます。
★の部分が対話式で設定値を返していく箇所です。
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
report_typeに値を入力してください: ★</code></pre>
<p>出力したいレポート形式を選択します。 </p>
<p>デフォルトでは「HTML形式」になります。</p>
<pre><code class="language-bash">Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing <return> without
specifying a number lists all completed snapshots.
num_daysに値を入力してください:★
直近何日間のスナップショットからレポートを取得するか選択します。
デフォルトはすべてのスナップショットから選択できるようになります。
Listing all Completed Snapshots
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
begin_snapに値を入力してください:★
end_snapに値を入力してください: ★</code></pre>
<p>スナップショットの開始地点と終了地点を選択します。 </p>
<pre><code class="language-bash">Specify the SQL Id
~~~~~~~~~~~~~~~~~~
sql_idに値を入力してください:★
SQL IDを指定します。
ここがAWRレポートとの違いになります。
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrsqlrpt_1_242_243.html. To use this name,
press <return> to continue, otherwise enter an alternative.
report_nameに値を入力してください:★
AWR SQLレポートのファイル名を指定します。
レポート名にディレクトリを指定しないとカレントディレクトリにレポートが生成されますので注意してください。