LoginSignup
10
10

More than 1 year has passed since last update.

Oracle Databaseのパフォーマンス調査方法についてまとめてみた

Last updated at Posted at 2022-04-13

はじめに

OSのログなどを調査し、Oracleデータベースでの処理にパフォーマンスのボトルネックがありそうだと切り分けした後、実際にどのようにパフォーマンス調査をしていくか、まとめてみたいと思います。
今回は、Oracleのパフォーマンス調査に利用できる、標準的なツールについて紹介したいと思います。

Oracleのパフォーマンスに影響を与える要素

Oracleのパフォーマンスに影響を与える要素としては、以下のようなものが考えられます。

  • OS、メモリ、ストレージ設定(スワップ、スラッシング、ディスクI/O不足)
  • 初期化パラメータの設定(Oracleへのメモリ割り当て不足など)
  • データベースファイル、データベースオブジェクトの設定
  • アンチウィルスソフトなど、Oracle以外のツール類の設定
  • アプリケーションが発行するSQL

Oracleのパフォーマンス問題の要因は、アプリケーションが発行するSQLである事が多い為、パフォーマンス問題要因となりうるSQLには、どのようなものが考えられるのか整理してみます。

パフォーマンスに問題があるSQLの切り分け

一般的に、以下の条件を1つ以上満たしているSQLは、チューニングによる改善が可能か検討する対象となります。

  • 1実行あたりの実行時間が長いSQL
  • ディスク読み取りデータブロック数が多いSQL
  • データバッファキャッシュの読み取り数が極端に多いSQL
  • 実行回数が極端に多いSQL

例えば、特定の機能の処理速度改善が目的であれば、該当機能で処理に時間がかかっているSQLに着目します。また、システム全体のスループット向上やシステム負荷低減を目標とする場合は、多くのリソースを使用しているSQLや、実行回数の多いSQLに着目します。

Oracleのパフォーマンス調査に利用するツール

以下のようなツールがあります。
他にもサードパーティー提供の有償ツールがありますが、ここではOracle標準のツールについて紹介します。

Enterprise Manager(EM)

Oracle(他にもOSやストレージ等)の管理・運用・監視ツールです。
データベース管理者(DBA)が行う、表領域やユーザー、スキーマオブジェクトの管理・運用やアラート監視、パフォーマンス監視・チューニングといった作業をブラウザベースの管理画面から、簡単に行えるようになっています。

Oracleの運用・監視は、熟練のDBAがSQL*Plus等からSQLやコマンドを駆使して行う難易度の高いものでしたが、このツールによりその作業の敷居が大きく下がりました。
また、各種メトリクスがグラフィカルに表現され、状況を容易に確認できるようにもなっています。
パフォーマンスに関しては、この後説明する、AWR、ADDM、ASH等の情報をグラフィカルなUIで確認する事や、チューニング作業もGUIから簡単に実施する事ができます。

非常に有用なツールなので、EMが使えるなら、Oracleのパフォーマンス調査はこれだけ(+AWR)でOKだと思います。
ただ、ライセンス(コスト)的に使えない環境が多いと思いますので、その場合は、Statspackを活用しましょう。

※Database Control、Express、Cloud Control等、Oracleバージョンにより呼び名は色々です。
※パフォーマンス調査、チューニング関連の全ての機能を利用するには、Enterprise Edition(EE) + Diagnostics Pack、Tuning Packオプションが必要です。

AWR (Automatic Workload Repository)

AWRは、後述するStatspackを進化させた、パフォーマンス統計情報のレポートツールです。
Statspackよりも多くの種類の詳細情報を出力する事ができ、また、テキストだけでなく、HTML形式での出力や、EMからの操作・参照も可能です。

AWRは、DBCA等を利用してのデータベース作成時点で構成されており、AWR用のデータは、SYSAUX表領域に格納されます。EE + Diagnostics Packオプションライセンスが無いと利用できない機能であるため、実際に利用する機会は少ないツールですが、利用できる場合は、非常に便利なツールです。

なお、パフォーマンスが悪い環境等で、時折、AWR用データによりSYSAUX領域が不足する事がある為、注意が必要です。

※AWRレポートを出力するには、SYSユーザーで「@?/rdbms/admin/awrrpt.sql」を実行します。

ADDM (Automatic Database Diagnostic Monitor)

AWRやStatspackを使い出力した、パフォーマンス統計情報のレポートは、パフォーマンス調査に有用な情報ですが、レポートの内容を理解し、分析するためには、それなりに高いレベルのOracleのパフォーマンスチューニングに関する知識が必要になります。

ADDMは、AWRの収集データをもとに、パフォーマンス分析を自動的に実施し、その分析結果と問題修正の為の推奨事項などをレポートする機能です。
まずADDMレポートを確認する事で、状況の概要が把握できるため、パフォーマンス分析に関わる作業効率を上げることができる、非常に有用なツールです。

AWRと同様に、EE+オプションライセンスが必要ですが、利用可能であれば、社内のパフォーマンス検証環境等でAWRと共に活用すると効果的です。

※ADDMレポートを出力するには、SYSユーザーで「@?/rdbms/admin/addmrpt.sql」を実行します。

ASH (Active Session History)

AWRやStatspackでは、ある一定の期間内の傾向を捉える事はできますが、瞬間的な事象についての分析に利用するには不向きです。
ASHは、このような瞬間的な事象を分析するためのツールで、アクティブなセッションに関するログを取得しています。

V\$SESSION(V\$SESSION_WAIT)の情報を1秒間隔で自動取得しており、V\$ACTIVE_SESSION_HISTORYビューを参照する事により、最近のアクティブなセッション情報を確認する事ができます。
ただし、V\$ACTIVE_SESSION_HISTORYの情報はSGA内に保持されているため、古い情報は削除されていきます。

V\$ACTIVE_SESSION_HISTORYに残っていない情報(デフォルトで7日前まで)を確認したい場合は、DBA_HIST_ACTIVE_SESS_HISTORYビューを参照するようにします。

※利用には、EE+オプションライセンスが必要です
※ASHレポートを出力するには、SYSユーザーで「@?/rdbms/admin/ashrpt.sql」を実行します。

Statspack

Oracle Databaseのパフォーマンス調査をする際にまず確認する、パフォーマンスチューニングに役立つ情報をレポート形式で提供するツールです。

ある2時点で取得したOracleが行った処理の内部統計情報の差分を元に、その間のパフォーマンス統計データをレポートとして出力します。

EM、AWR、ADDMなどが利用できる場合は、Statspackは利用しませんが、SE2環境でパフォーマンス調査を行う場合、Statspackレポートがほぼ必須の情報になります。

Statspackのインストール方法、レポートの解析方法については、以下の記事も参考にしていただければと思います。

動的パフォーマンスビューを参照(SQL)

問題となっているSQLを調査する場合、AWRやStatspackが利用できる環境であれば、それらを利用しますが、利用できない場合は、動的パフォーマンスビューをSQLで参照して調査する事もできます。
ただし、動的パフォーマンスビューを参照しての調査は、かなり難しい為、Statspackをインストールおよび設定し、Statspackレポートで調査を行う事を推奨します。

調査する場合、V$SQLSTATSなどの動的パフォーマンスビューを参照するSQLを実行し調査しますが、詳細については、別記事で記載したいと思います。

SQL*PlusのAutoTrace、DBMS_XPLAN.DISPLAY_CURSOR、SQLトレース⁺TKPROF

問題のあるSQLがある程度特定された後、SQLの実行計画、統計情報など、更に詳細な情報を調査する際に利用するツールです。
これらについても、詳細は別記事で記載します。

動的パフォーマンスビューを利用したSQLの調査方法、SQLの実行計画の出力方法について、詳細は以下の記事を参考にしていただければと思います。

OSのパフォーマンスログ

DBサーバー全体の状況確認には、Linuxであれば、sar、vmstat、top、dstatなど、Windowsであれば、パフォーマンスモニターのログなどで調査を行います。

おわりに

Oracleのパフォーマンス調査に利用できる、標準的なツールについて紹介してみました。
次回からは、Statspackレポートなどのツールの詳細な利用方法、解析方法について記事にしたいと思います。

10
10
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
10
10