3 データベースのパフォーマンスの自動監視
自動データベース診断モニター(ADDM)では、データベースでのパフォーマンスの問題を検出して報告します。結果は、Oracle Enterprise Manager Cloud Control (Cloud Control)のデータベースのホームページにADDMの検出結果として表示されます。ADDMの結果を確認することによって、対処が必要なパフォーマンスの問題を迅速に特定できます。このガイドにある他のパフォーマンス・チューニング方法を使用する前に、最初にADDM分析の結果を確認する必要があります。
ADDMの結果では、パフォーマンスの問題の影響を削減する推奨事項のリストを提供します。ADDMの結果を確認して、定期的なデータベースのメンテナンスの一環として推奨事項を毎日実施します。データベースが最適なパフォーマンス・レベルで動作しているときでも、ADDMの使用を続行し、継続的にデータベースのパフォーマンスを監視します。
この章の構成は、次のとおりです。
参照:
-
DBMS_ADVISOR
パッケージを使用した自動データベース診断モニターによるデータベースの診断およびチューニングについては、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。
3.1 自動データベース診断モニターの概要
ADDMはOracle Databaseに組み込まれている診断ソフトウェアです。ADDMで自動ワークロード・リポジトリ(AWR)に取得されたデータが調査および分析され、発生する可能性のあるデータベースのパフォーマンスの問題が判別されます。ADDMは、次を実行します。
-
パフォーマンス問題の根本的な原因の特定
-
それらを修正するための推奨事項の提供
-
予想されるメリットの定量化
-
アクションを必要としない領域の識別
この項では、次の項目について説明します。
3.1.1 ADDM分析
ADDM分析は各AWRスナップショットの後に実行され(デフォルトでは毎時間)、結果はデータベースに保存されます。次に、Cloud Controlを使用して、結果を表示できます。
ADDM分析はトップダウンで実行され、最初に症状を識別し、パフォーマンスの問題の根本的な原因が判明するまで分析を精製します。ADDMでは、DB時間統計を使用してパフォーマンスの問題を識別します。データベース(DB)時間はユーザー要求の処理にデータベースが必要とする累積時間で、待機時間およびアイドルではないすべてのユーザー・セッションのCPUタイムの両方が含まれます。
データベースのパフォーマンスのチューニングの目標は、特定のワークロードに対してシステムのDB時間を削減することです。DB時間を削減することで、データベースは、同量以下のリソースでより多くのユーザー・リクエストをサポートできます。ADDMは、問題の領域としてDB時間の大部分を使用するシステム・リソースを報告し、費やしたDB時間の降順でソートします。
参照:
DB時間統計の詳細は、「時間モデル統計」を参照してください
3.1.2 ADDM推奨
ADDMはパフォーマンスの問題の診断以外にも、考えられる解決策を推奨します。該当する場合は、ADDMは選択できる複数の解決策を推奨します。ADDMの推奨事項の内容は次のとおりです。
-
ハードウェアの変更
CPUの追加またはI/Oサブシステム構成の変更
-
データベース構成
初期化パラメータ設定の変更
-
スキーマの変更
表または索引のハッシュ・パーティション化、または自動セグメント領域管理(ASSM)の使用
-
アプリケーションの変更
順序付けのためのキャッシュ・オプションの使用またはバインド変数の使用
-
他のアドバイザの使用
高負荷SQL文でのSQLチューニング・アドバイザの実行またはホット・オブジェクトに対するセグメント・アドバイザの実行
ADDMの利点は本番システム以外にも、開発システムおよびテスト・システムにも適用されます。ADDMは潜在的なパフォーマンスの問題を早い段階で警告できます。
パフォーマンス・チューニングは反復操作です。1つの問題を修正しても、システムの他の部分がボトルネックになる場合があります。ADDM分析を利用しても、パフォーマンスが理想的なレベルに到達するまでには複数のチューニング・サイクルが必要となる場合があります。
3.1.3 Oracle Real Application ClustersのADDM
Oracle Real Application Clusters(Oracle RAC)環境で、ADDMを使用して、データベース・クラスタのスループット・パフォーマンスを分析できます。Oracle RACのADDMは、すべてのデータベース・インスタンスのデータベース時間の合計としてDB時間を検討し、クラスタ・レベルで重要な結果を報告します。たとえば、各クラスタ・ノードのDB時間は、個別に検討する場合には重要ではない可能性がありますが、集計DB時間は、クラスタ全体で重要な問題である可能性があります。
参照:
-
Oracle RACでのADDMの使用については、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。
3.2 自動データベース診断モニターの構成
3.2.1 ADDMを有効にする初期化パラメータの設定
自動データベース診断監視は、デフォルトで有効になっており、CONTROL_MANAGEMENT_PACK_ACCESS
およびSTATISTICS_LEVEL
初期化パラメータで制御されます。
CONTROL_MANAGEMENT_PACK_ACCESS
をDIAGNOSTIC+TUNING
(デフォルト)またはDIAGNOSTIC
に設定し、自動データベース診断監視を有効にします。CONTROL_MANAGEMENT_PACK_ACCESS
をNONE
に設定すると、ADDMを含む多くのOracle Databaseの機能が無効化されるため、この方法はお薦めしません。
自動データベース診断モニターの機能を有効にするには、STATISTICS_LEVEL
をTYPICAL
(デフォルト)またはALL
に設定します。STATISTICS_LEVEL
をBASIC
に設定すると、ADDMを含む多くのOracle Databaseの機能が無効化されるため、この方法はお薦めしません。
ADDMが有効かどうかの確認手順:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「管理」メニューから、初期化パラメータを選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「初期化パラメータ」ページが表示されます。
-
「名前」フィールドに
statistics_level
を入力して「実行」をクリックします。「初期化パラメータ」表には初期化パラメータの設定が表示されます。
-
次のいずれかの操作を行います。
-
「値」リストにALLまたはTYPICALが表示されている場合は、何も行いません。
-
「値」リストにBASICが表示されている場合は、ALLまたはTYPICALを選択して「適用」をクリックします。
-
-
「名前」フィールドに、
control_management_pack_access
を入力し、「実行」をクリックします。表には初期化パラメータの設定が表示されます。
-
次のいずれかの操作を行います。
-
「値」列にDIAGNOSTICまたはDIAGNOSTIC+TUNINGが表示されている場合、何も行いません。
-
「値」列にNONEが表示されている場合、DIAGNOSTICまたはDIAGNOSTIC+TUNINGを選択して「適用」をクリックします。
-
参照:
-
STATISTICS_LEVEL
初期化パラメータについては、『Oracle Databaseリファレンス』を参照してください。 -
CONTROL_MANAGEMENT_PACK_ACCESS
初期化パラメータについては、『Oracle Databaseリファレンス』を参照してください。
3.2.2 DBIO_EXPECTEDパラメータの設定
I/OパフォーマンスのADDM分析は、単一の引数DBIO_EXPECTED
によって異なり、I/Oサブシステムの予測されるパフォーマンスを示しています。DBIO_EXPECTED
の値は、単一のデータベース・ブロックの読取りにかかるマイクロ秒単位の時間の平均です。Oracle Databaseでは10ミリ秒のデフォルト値が使用されており、多くのハード・ドライブに対して適切な値です。ハードウェアの特性に基づいて異なる値を選択できます。
DBIO_EXPECTED
初期化パラメータの適切な設定を決定する手順:
-
ご使用のハードウェアで1つのデータベース・ブロックの平均読取り時間を測定します。
ランダムI/Oに対してこの測定が必要で、標準のハード・ドライブを使用する場合はシーク時間も測定に含まれます。ハード・ドライブの標準の値は5000マイクロ秒から20000マイクロ秒です。
参照:
ストレージ・サブシステムのI/O機能の評価方法については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください
-
後続のすべてのADDM実行の値を一度設定します。
たとえば、測定値が8000マイクロ秒の場合、次のPL/SQLコードを
SYS
ユーザーとして実行します。EXECUTE DBMS_ADVISOR.SET_DEFAULT_TASK_PARAMETER( 'ADDM', 'DBIO_EXPECTED', 8000);
3.2.3 AWRスナップショットの管理
デフォルトでは、自動ワークロード・リポジトリ(AWR)は1時間に1回、パフォーマンス・データのスナップショットを生成し、統計をワークロード・リポジトリに8日間保持します。スナップショットの間隔と保存期間の両方のデフォルトの値を変更できます。
AWRの保存期間を最低でも1か月に調整することをお薦めします。1つのビジネス・サイクルに対して期間の延長もでき、会計四半期閉めの時間枠でデータを比較できます。AWRベースラインを作成して、重要な期間に対してスナップショットを無期限に保持することもできます。
スナップショットの間隔のデータはADDMによって分析されます。ADDMではスナップショットの違いを比較して、システム・ロードの有効性に基づき、どのSQL文を取得するかを確認します。ADDMの分析では、時間の経過によって取得する必要のあるSQL文の数が示されます。
この項では、次の項目について説明します。
3.2.3.1 スナップショットの作成
手動でスナップショットを作成できますが、デフォルトではAWRで1時間に一度パフォーマンス・データのスナップショットが生成されるため、通常はこの作業は不要です。ただし、スナップショットの間隔より短い期間のパフォーマンス・データを比較する場合など、異なるアクティビティの期間を取得する場合は、スナップショットを手動で作成する必要がある場合があります。
スナップショットの作成手順:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「AWR」を選択してから「AWR管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「自動ワークロード・リポジトリ」ページが表示されます。
-
「Manage Snapshots and Baselines」で、「Snapshots」の横にある数値をクリックします。
最新のスナップショットのリストがある「スナップショット」ページが表示されます。
-
「作成」をクリックします。
「確認」ページが表示されます。
-
「はい」をクリックします。
スナップショットの作成中に「処理中: スナップショットの作成」ページが表示されます。
スナップショットが作成されると、「スナップショット」ページが確認メッセージとともに再表示されます。
次のスナップショットのリストのスクリーンショットは、スナップショットが午前9:24:25に作成されたことを示しています。スナップショットのIDは、383です。
3.2.3.2 スナップショット設定の変更
デフォルトでは、AWRは1時間に一度パフォーマンス・データのスナップショットを生成します。スナップショットの間隔と保存期間の両方のデフォルト値を変更できます。
スナップショット設定の変更手順:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「AWR」を選択してから「AWR管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「自動ワークロード・リポジトリ」ページが表示されます。
ページの「一般」セクションの次のスクリーンショットでは、スナップショットの保存は8日に設定されており、スナップショット間隔は60分に設定されています。
-
「編集」をクリックします。
「設定の編集」ページが表示されます。
-
「スナップショットの保存」で、次のいずれかの操作を行います。
-
「時間ベースの保存の使用 保存期間(日)」を選択し、関連フィールドにスナップショットを保存する日数を入力します。
-
「永久的に保存」を選択して、スナップショットを無期限に保存します。
使用可能なディスク領域に応じて許可されだけスナップショットの保存期間を延長することをお薦めします。
「スナップショットの保存」グループの次のスクリーンショットでは、スナップショットの保存期間は30日に変更されています。
-
-
「スナップショット収集」で、次のいずれかの操作を行います。
-
「システム・スナップショット間隔」を選択して、「間隔」リストで目的の間隔を選択し、スナップショット間の間隔を変更します。
-
「スナップショット収集の無効化」を選択して、スナップショット収集を無効にします。
「スナップショット収集」グループの次のスクリーンショットでは、スナップショット収集間隔が30分に変更されています。
-
-
「収集レベル」の隣のリンクをクリックします。
「初期化パラメータ」ページが表示されます。
統計レベルを変更するには、
statistics_level
パラメータの「値」リストで、TYPICAL
またはALL
を選択します。「ファイルに保存」をクリックして、サーバー・パラメータ・ファイルの値を設定します。「初期化パラメータ」表の次のスクリーンショットでは、Typicalのデフォルト値が使用されています。
-
「OK」をクリックして変更を保存します。
「自動ワークロード・リポジトリ」ページに新しい設定が表示されます。
3.3 自動データベース診断モニターの分析の確認
デフォルトでは、ADDMは毎時間実行され期間中にAWRによって作成されるスナップショットを分析します。データベースがパフォーマンスの問題を検出した場合 、分析の結果がデータベースのホームページの「サマリー」セクションの「診断」に表示されます。
「ADDM結果」リンクは、直近のADDM分析で検出されたADDM結果がいくつあるかを示しています。
ADDM結果の表示方法:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。
-
「アドバイザ・タスク」の「結果」セクションで、最新のADDM結果を選択して「結果の表示」をクリックします。
自動データベース診断モニター(ADDM)ページが表示されます。ADDMの実行結果が表示されます。
「自動データベース診断モニター(ADDM)」ページの「データベース・アクティビティ」グラフでは、ADDM分析期間中のデータベース・アクティビティが表示されます。データベース・アクティビティのタイプは、グラフで対応する色に基づいて凡例で定義されます。グラフの下にある各アイコンは各ADDMタスクを示し、各ADDMタスクはAWRに保存されているスナップショットのペアに対応します。
図3-1では、「データベース・アクティビティ」セクションの積上げ面グラフによって、12月30日の午後2時から4時30分の間にデータベース・アクティビティが最も多いことが示されています。この間、アクティビティはわずかなI/Oで、CPUおよび待機クラスによって占められます。
「ADDMパフォーマンス分析」セクションで、ADDM結果は影響の高いものから降順でリストされます。「情報の結果」セクションでは、パフォーマンスに影響がなく、情報目的のみの領域をリストします。
-
オプションで、「ズーム」アイコンをクリックすると、グラフに表示されている分析期間を短縮、または拡大できます。
-
レポートにADDMの検出結果を表示するには、「レポートの表示」をクリックします。
「レポートの表示」ページが表示されます。
「ファイルに保存」をクリックして、後のアクセスのレポートを保存できます。
3.4 自動データベース診断モニターの結果の説明
ADDM分析結果は、検出結果のセットを表しています。各ADDMの検出結果は次の3タイプのいずれかです。
-
問題
データベースのパフォーマンスの問題の根本的な原因を示す検出結果
-
症状
1つ以上の問題を検出する頻度の高い情報が含まれる検出結果
-
情報
パフォーマンスに影響を与えないシステムの領域を報告するために使用される検出結果
問題の検出結果は、DB時間のパフォーマンスの問題による部分の見積りから定量化されます。
特定の問題に複数の原因がある場合、ADDMは複数の結果をレポートする場合があります。この場合、同一箇所のDB時間に対して、結果の影響が複数表示されます。パフォーマンスの問題が重複した場合、レポートされた結果の影響をすべて合計すると、DB時間の100%を超える可能性があります。たとえば、I/O操作の読取りが多数実行されて、ADDMが1つ目の結果としてDB時間の50%がI/OアクティビティのSQL文の影響であるとレポートし、もう1つの結果としてDB時間の75%がバッファ・キャッシュの不足の影響であるとレポートするような場合です。
問題の検出結果は推奨事項のリストと関連付けてパフォーマンスの問題による影響を軽減できます。各推奨事項には推奨事項が実装される場合にDB時間の一部の見積りが節約できるという利点があります。複数の推奨事項がADDMの検出結果と関連付けられている場合、推奨事項には同一の問題を解決する代替手段が含まれる場合があります。この場合、利点の合計は結果の影響より高い場合があります。同一の問題を解決するためにすべての推奨事項を適用する必要はありません。
推奨事項はアクションとその理由で構成されています。推奨事項の実行により予測される利点を得るためには、推奨されたすべてのアクションを適用する必要があります。また、これらのアクションが推奨される理由の説明と、推奨事項の実装に関する詳細情報が提供されます。場合によっては、ADDMアクションによって複数の解決策が提示されることがあります。その場合は、最も実装が簡単な解決策を選択します。
3.5 自動データベース診断モニターの推奨事項の実装
この項では、ADDMの推奨事項の実装方法を説明します。ADDMの検出結果は「ADDMパフォーマンス分析」の「自動データベース診断モニター(ADDM)」ページに表示されます。
ADDMの推奨事項の実装手順:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「アドバイザ・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「アドバイザ・セントラル」ページが表示されます。
-
「アドバイザ・タスク」の「結果」セクションで、最新のADDM結果を選択して「結果の表示」をクリックします。
自動データベース診断モニター(ADDM)ページが表示されます。
-
「データベース・アクティビティ」セクションで、調べるADDM実行のグラフ・アイコンをクリックします。
「ADDMパフォーマンス分析」セクション内のデータは、選択したADDMの実行に基づいて変更されます。
-
「ADDMパフォーマンス分析」表で「ADDM結果」をクリックします。
「ADDMパフォーマンス分析」表の次のスクリーンショットで、最大の影響の検出結果は上位SQL文です。
パフォーマンス結果の詳細ページが表示されます。
「パフォーマンス結果の詳細」ページの次のスクリーンショットでは、5つの推奨事項が示されています。1つ目の推奨事項では、分析期間中にDB時間が最大で26.7%短縮されるメリットがあるという見積りが示されています。2つ目の推奨事項ではDB時間が最大で10.9%、3つ目の推奨事項でも最大で10.9%、4つ目の推奨事項では最大で9.9%、5つ目の推奨事項では最大で5%短縮されるメリットがあるという見積りが示されています。
-
「推奨」で「表示」をクリックして、推奨事項および各推奨事項に該当するアクションを確認します。
「カテゴリ」列には推奨事項のカテゴリが表示されます。「ベネフィット(%)」列には推奨事項を実装することによって得ることができるメリットの見積りが表示されます。
図3-2は、「推奨」表の1つ目の項目の推奨事項を示しています。
-
一連のアクションが推奨される理由が参照可能な場合は、「追加情報」をクリックするか、「追加情報」の下に表示される内容を確認します。
たとえば、次のスクリーンショットは、
DB_CACHE_SIZE
初期化パラメータの推奨値を示す追加情報を含む「サイズ不足のバッファ・キャッシュ」の結果を示しています。 -
検出結果の履歴を表示するには、「結果履歴」をクリックします。
「結果履歴」ページが表示されます。次のスクリーンショットには、上位SQL文の「結果履歴」ページが示されています。
「結果履歴」ページに、選択した3時間間隔に特定の結果が検出された頻度が表示されます。この情報を使用して、結果がシステムの一時的な問題であるか、または永続的な問題であるかを判断します。この情報に基づいて、結果に関連付けられたアクションの実行が必要かどうかを判断できます。
「アクティブ・セッション」積上げ面グラフには、結果の影響と、システムに対するその他の負荷が表示されます。表示は次のように変更できます。
-
3時間間隔を変更するには、「アクティブ・セッション」グラフの影付きのボックスをクリックしてドラッグします。
-
日付を変更するには、「表示」フィールドに目的の日付を入力して「実行」をクリックします。
-
結果の詳細を表示するには、「選択した3時間間隔の詳細」で「結果詳細」列のリンクをクリックすると、対応するADDMの検出結果を表示する「パフォーマンス結果の詳細」ページが表示されます。
-
-
オプションとして、チューニング済またはこれ以上チューニングできない既知の結果を抑制するフィルタを作成します。選択したADDM結果のフィルタを作成するには、次の手順を実行します。
-
「フィルタ」をクリックします。
結果に対するフィルタ・ページが表示されます。
-
「作成」をクリックします。
「結果に対するフィルタの作成」ページが表示されます。
-
ADDMフィルタ名を「名前」フィールドに入力します。
-
「アクティブ・セッション」フィールドで、アクティブ・セッションの数を条件としてフィルタ基準を指定します。
指定したフィルタ条件よりADDMの検出結果のアクティブ・セッション数が少ない場合、将来のADDMの実行のために、データベースによってこの検出結果にフィルタが適用されます。
-
%アクティブ・セッション・フィールドで、アクティブ・セッションの割合を条件としてフィルタ基準を指定します。
指定したフィルタ条件よりADDMの検出結果のアクティブ・セッション数が少ない場合、将来のADDMの実行のために、データベースによってこの検出結果にフィルタが適用されます。
-
「OK」をクリックします。
-
-
選択された推奨事項で必要なアクションを実行します。
実行するアクションのタイプによって、「実装」または「アドバイザをただちに実行」などのいくつかのオプションが使用可能になります。これらのオプションを使用すると、一度のクリックですぐに推奨事項を実装できます。
図3-2に示す例では、最も単純な解決方法は、「アドバイザをただちに実行」をクリックして、SQL文でSQLチューニング・アドバイザのタスクをすぐに実行することです。
参照:
3.6 スナップショット統計の表示
AWRでCloud Controlを使用して、作成されるスナップショットに含まれるデータを表示できます。スナップショット・データは主にRAW統計で構成されているため、通常、確認する必要はありません。かわりに、ADDMを使用して、パフォーマンスの問題を識別するこれらの統計を分析する必要があります。スナップショット統計は、パフォーマンス分析のStatspackの使用に慣れているDBAなどの主に上級ユーザー向けです。
スナップショット統計の表示手順:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「AWR」を選択してから「AWR管理」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。
-
「Manage Snapshots and Baselines」で、「Snapshots」の横にある数値をクリックします。
最新のスナップショットのリストがある「スナップショット」ページが表示されます。
-
スナップショットに収集された統計を表示するには、表示するスナップショットの「ID」リンクをクリックします。
「スナップショットの詳細」が表示され、「詳細」サブページが表示されます。
「詳細」サブページの次のスクリーンショットは、以前のスナップショット(スナップショット386)から選択されたスナップショット(スナップショット387)までの収集された統計を示しています。
-
ワークロード・リポジトリの統計レポートを表示するには、「レポート」をクリックします。
ワークロード・リポジトリ・レポートが表示されます。
-
オプションで、「ファイルに保存」をクリックして、後のアクセスのためにレポートを保存します。
参照: