ヘッダーをスキップ
Oracle® Database 2日でパフォーマンス・チューニング・ガイド
11gリリース2(11.2)
B56313-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 データベースのパフォーマンスの自動監視

自動データベース診断モニター(ADDM)では、データベースでのパフォーマンスの問題を検出して報告します。この結果は、Oracle Enterprise Manager(Enterprise Manager)のデータベースのホームページでADDMの結果として表示されます。ADDMの結果を確認することによって、対処が必要なパフォーマンスの問題を迅速に特定できます。

ADDMの結果では、パフォーマンスの問題の影響を削減する推奨事項のリストを提供します。ADDMの結果を確認して、定期的なデータベースのメンテナンスの一環として推奨事項を毎日実施します。データベースが最適なパフォーマンス・レベルで動作しているときでも、ADDMの使用を続行し、継続的にデータベースのパフォーマンスを監視します。

この章の内容は次のとおりです。


参照:

  • DBMS_ADVISORパッケージを使用した自動データベース診断モニターによるデータベースの診断およびチューニングについては、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。


自動データベース診断モニターの概要

ADDMはOracle Databaseに組み込まれている自己診断ソフトウェアです。ADDMで自動ワークロード・リポジトリ(AWR)に取得されたデータが調査および分析され、発生する可能性のあるデータベースのパフォーマンスの問題が判別されます。その後、パフォーマンスの問題の根本的な原因を含む場所が特定され、問題修正のための推奨事項を提示し、予測される利点を定量化します。また、アクションを必要としない領域を識別します。

この項の内容は次のとおりです。

ADDM分析

ADDM分析は各AWRスナップショットの後に実行され(デフォルトでは毎時間)、結果はデータベースに保存されます。結果はEnterprise Managerを使用して表示できます。このマニュアルにある他のパフォーマンス・チューニング方法を使用する前に、まずADDM分析の結果を確認します。

ADDM分析はトップダウンで実行され、最初に症状を識別し、パフォーマンスの問題の根本的な原因が判明するまで分析を精製します。ADDMでは、DB時間統計を使用してパフォーマンスの問題を識別します。DB時間はユーザー要求の処理にデータベースが必要とする累積時間で、待機時間およびアイドルではないすべてのユーザー・セッションのCPUタイムの両方が含まれます。

データベースのパフォーマンスのチューニングの目標は、特定のワークロードに対してシステムのDB時間を削減することです。DB時間を削減することで、データベースは、同量以下のリソースでより多くのユーザー・リクエストをサポートできます。ADDMは、問題の領域としてDB時間の大部分を使用するシステム・リソースを報告し、費やしたDB時間の降順でソートします。DB時間の統計の詳細は、「時間モデル統計」を参照してください。

ADDM推奨

ADDMはパフォーマンスの問題の診断以外にも、考えられる解決策を推奨します。該当する場合は、ADDMは選択できる複数の解決策を推奨します。ADDMの推奨事項の内容は次のとおりです。

  • ハードウェアの変更

    CPUの追加またはI/Oサブシステム構成の変更

  • データベース構成

    初期化パラメータ設定の変更

  • スキーマの変更

    表または索引のハッシュ・パーティション化、または自動セグメント領域管理(ASSM)の使用

  • アプリケーションの変更

    順序付けのためのキャッシュ・オプションの使用またはバインド変数の使用

  • 他のアドバイザの使用

    高負荷SQL文でのSQLチューニング・アドバイザの実行またはホット・オブジェクトに対するセグメント・アドバイザの実行

ADDMの利点は本番システム以外にも、開発システムおよびテスト・システムにも適用されます。ADDMは潜在的なパフォーマンスの問題を早い段階で警告できます。

パフォーマンス・チューニングは相互作用的なプロセスです。1つの問題を修正しても、システムの他の部分がボトルネックになる場合があります。ADDM分析を利用しても、パフォーマンスが理想的なレベルに到達するまでには複数のチューニング・サイクルが必要となる場合があります。


参照:

  • セグメント・アドバイザについては、『Oracle Database 2日でデータベース管理者』を参照してください。


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ガイド』を参照してください。


自動データベース診断モニターの構成

この項の内容は次のとおりです。

ADDMを有効にする初期化パラメータの設定

自動データベース診断監視は、デフォルトで有効になっており、CONTROL_MANAGEMENT_PACK_ACCESSおよびSTATISTICS_LEVEL初期化パラメータで制御されます。

CONTROL_MANAGEMENT_PACK_ACCESSDIAGNOSTIC+TUNING(デフォルト)またはDIAGNOSTICに設定し、自動データベース診断監視を有効にします。CONTROL_MANAGEMENT_PACK_ACCESSNONEに設定すると、ADDMを含む多くのOracle Databaseの機能が無効化されるため、この方法はお薦めしません。

STATISTICS_LEVELTYPICAL(デフォルト)またはALLに設定して、自動データベース診断監視を有効にします。STATISTICS_LEVELBASICに設定すると、ADDMを含む多くのOracle Databaseの機能が無効化されるため、この方法はお薦めしません。

ADDMが有効かどうかの確認手順

  1. データベースのホームページで「サーバー」をクリックします。

    「サーバー」サブページが表示されます。

  2. 「データベース構成」セクションで「初期化パラメータ」をクリックします。

    「初期化パラメータ」ページが表示されます。

  3. 「名前」フィールドにstatistics_levelを入力して「実行」をクリックします。

    表には初期化パラメータの設定が表示されます。

    statistics_level.gifの説明が続きます。
    statistics_level.gifの説明

  4. 次のいずれかの操作を行います。

    • 「値」リストにALLまたはTYPICALが表示されている場合は、何も行いません。

    • 「値」リストにBASICが表示されている場合は、ALLまたはTYPICALを選択して「適用」をクリックします。

  5. 「名前」フィールドに、control_management_pack_accessを入力し、「実行」をクリックします。

    表には初期化パラメータの設定が表示されます。

  6. 次のいずれかの操作を行います。

    • 「値」列にDIAGNOSTICまたはDIAGNOSTIC+TUNINGが表示されている場合、何も行いません。

    • 「値」列にNONEが表示されている場合、DIAGNOSTICまたはDIAGNOSTIC+TUNINGを選択して「適用」をクリックします。


参照:

  • STATISTICS_LEVEL初期化パラメータについては、『Oracle Databaseリファレンス』を参照してください。

  • CONTROL_MANAGEMENT_PACK_ACCESS初期化パラメータについては、『Oracle Databaseリファレンス』を参照してください。


DBIO_EXPECTEDパラメータの設定

I/OパフォーマンスのADDM分析は、単一の引数DBIO_EXPECTEDによって異なり、I/Oサブシステムの予測されるパフォーマンスを示しています。DBIO_EXPECTEDの値は、単一のデータベース・ブロックの読取りにかかるマイクロ秒単位の時間の平均です。Oracle Databaseでは10ミリ秒のデフォルト値が使用されており、多くのハード・ドライブに対して適切な値です。ハードウェアの特性に基づいて異なる値を選択できます。

DBIO_EXPECTED初期化パラメータの適切な設定を決定する手順

  1. ご使用のハードウェアで1つのデータベース・ブロックの平均読取り時間を測定します。

    ランダムI/Oに対してこの測定が必要で、標準のハード・ドライブを使用する場合はシーク時間も測定に含まれます。ハード・ドライブの標準の値は5000マイクロ秒から20000マイクロ秒です。ストレージ・サブシステムのI/O機能の評価方法については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

  2. 後続のすべてのADDM実行の値を一度設定します。

    たとえば、測定値が8000マイクロ秒の場合、次のPL/SQLコードをSYSユーザーとして実行します。

    EXECUTE DBMS_ADVISOR.SET_DEFAULT_TASK_PARAMETER(
                         'ADDM', 'DBIO_EXPECTED', 8000);
    

AWRスナップショットの管理

デフォルトでは、自動ワークロード・リポジトリ(AWR)は1時間に1回、パフォーマンス・データのスナップショットを生成し、統計をワークロード・リポジトリに8日間保持します。スナップショットの間隔と保存期間の両方のデフォルトの値を変更できます。

AWRの保存期間を最低でも1か月に調整することをお薦めします。1つのビジネス・サイクルに対して期間の延長もでき、会計四半期閉めの時間枠でデータを比較できます。AWRベースラインを作成して、重要な期間に対してスナップショットを無期限に保持することもできます。

スナップショットの間隔のデータはADDMによって分析されます。ADDMではスナップショットの違いを比較して、システム・ロードの有効性に基づき、どのSQL文を取得するかを確認します。ADDMの分析では、時間の経過によって取得する必要のあるSQL文の数が示されます。

この項の内容は次のとおりです。

スナップショットの作成

手動でスナップショットを作成できますが、デフォルトではAWRで1時間に一度パフォーマンス・データのスナップショットが生成されるため、通常はこの作業は不要です。ただし、スナップショットの間隔より短い期間のパフォーマンス・データを比較する場合など、異なるアクティビティの期間を取得する場合は、スナップショットを手動で作成する必要がある場合があります。

スナップショットの作成手順

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. 「その他の監視リンク」セクションで、「スナップショット」をクリックします。

    最新のスナップショットのリストがある「スナップショット」ページが表示されます。

  3. 「作成」をクリックします。

    「確認」ページが表示されます。

  4. 「はい」をクリックします。

    スナップショットの作成中に「処理中: スナップショットの作成」ページが表示されます。

    スナップショットが作成されると、「スナップショット」ページが確認メッセージとともに再表示されます。

    次の例では、作成されたスナップショットのIDは96です。

    snapshots.gifの説明が続きます。
    snapshots.gifの説明

スナップショット設定の変更

デフォルトでは、AWRは1時間に一度パフォーマンス・データのスナップショットを生成します。スナップショットの間隔と保存期間の両方のデフォルト値を変更できます。

スナップショット設定の変更手順

  1. データベースのホームページで「サーバー」をクリックします。

    「サーバー」サブページが表示されます。

  2. 「統計管理」セクションで「自動ワークロード・リポジトリ」をクリックします。

    「自動ワークロード・リポジトリ」ページが表示されます。

    snapshot_settings.gifの説明が続きます。
    snapshot_settings.gifの説明

    この例では、「スナップショットの保存(日)」は8日、「スナップショット間隔」は60分に設定されています。

  3. 「編集」をクリックします。

    「設定の編集」ページが表示されます。

    snap_edit_set.gifの説明が続きます。
    snap_edit_set.gifの説明

  4. 「スナップショットの保存」で、次のいずれかの操作を行います。

    • 「時間ベースの保存の使用 保存期間(日)」を選択し、関連フィールドにスナップショットを保存する日数を入力します。

    • 「永久的に保存」を選択して、スナップショットを無期限に保存します。

    使用可能なディスク領域に応じて許可されだけスナップショットの保存期間を延長することをお薦めします。

    この例では、スナップショットの保存期間が30日間に変更されます。

    snapshot_retent.gifの説明が続きます。
    snapshot_retent.gifの説明

  5. 「スナップショット収集」で、次のいずれかの操作を行います。

    • 「システム・スナップショット間隔」を選択して、「間隔」リストで目的の間隔を選択し、スナップショット間の間隔を変更します。

    • 「スナップショット収集の無効化」を選択して、スナップショット収集を無効にします。

    この例では、スナップショットの収集間隔が30分に変更されます。

    snapshot_collect.gifの説明が続きます。
    snapshot_collect.gifの説明

  6. 「収集レベル」の隣のリンクをクリックします。

    「初期化パラメータ」ページが表示されます。

    統計レベルを変更するには、「値」リストでstatistics_levelパラメータに希望する値を選択します。「ファイルに保存」をクリックして、サーバー・パラメータ・ファイルの値を設定します。

    この例では、デフォルト値TYPICALが使用されています。

    snapshot_stat_lvl.gifの説明が続きます。
    snapshot_stat_lvl.gifの説明

  7. 「OK」をクリックして変更を適用します。

    「自動ワークロード・リポジトリ」ページに新しい設定が表示されます。

    snapshot_sett_mod.gifの説明が続きます。
    snapshot_sett_mod.gifの説明

自動データベース診断モニターの分析の確認

デフォルトでは、ADDMは毎時間実行され期間中にAWRによって作成されるスナップショットを分析します。データベースがパフォーマンスの問題を検出した場合、分析の結果がデータベースのホームページの「診断サマリー」に表示されます。

diagnostic_sum.gifの説明が続きます。
diagnostic_sum.gifの説明

ADDM結果リンクは、最後のADDM分析で検索されたADDMの検出結果の量が表示されます。

ADDM結果の表示方法

  1. データベースのホームページの「診断サマリー」で、「ADDM結果」の横にあるリンクをクリックします。

    「自動データベース診断モニター(ADDM)」ページが表示されます。ADDMの実行結果が表示されます。

    addm_page.gifの説明が続きます。
    addm_page.gifの説明

    自動データベース診断モニター(ADDM)ページの「データベース・アクティビティ」グラフでは、ADDM分析期間中のデータベース・アクティビティが表示されます。データベース・アクティビティのタイプは、グラフで対応する色に基づいて凡例で定義されます。グラフの下にある各アイコンは各ADDMタスクを示し、各ADDMタスクはAWRに保存されているスナップショットのペアに対応します。

    この例では、アクティビティの2つの最大ブロックは1月20日の午後2時30分から午後5時30分のブロックと、次の日の午前9時から午前11時のブロックです。4時30分以後1時間にCPUバーが太くWaitバーが細くなっているのは、その期間にCPUがボトルネックになっている可能性を示しています。グラフのその他の領域では、WaitバーがCPUバーよりも太くなっており、待機イベントがCPUよりもパフォーマンスに大きく影響したことを示しています。

    「ADDMパフォーマンス分析」セクションで、ADDM結果は影響の高いものから降順でリストされます。「情報の結果」セクションでは、パフォーマンスに影響がなく、情報目的のみの領域をリストします。

    information_findings.gifの説明が続きます。
    information_findings.gifの説明

  2. オプションで、「ズーム」アイコンをクリックすると、グラフに表示されている分析期間を短縮、または拡大できます。

  3. レポートにADDMの検出結果を表示するには、「レポートの表示」をクリックします。

    「レポートの表示」ページが表示されます。

    「ファイルに保存」をクリックして、後のアクセスのレポートを保存できます。

自動データベース診断モニターの結果の説明

ADDM分析結果は、検出結果のセットを表しています。各ADDMの検出結果は次の3タイプのいずれかです。

問題の検出結果は、DB時間のパフォーマンスの問題による部分の見積りから定量化されます。

特定の問題に複数の原因がある場合、ADDMは複数の結果をレポートする場合があります。この場合、同一箇所のDB時間に対して、結果の影響が複数表示されます。パフォーマンスの問題が重複した場合、レポートされた結果の影響をすべて合計すると、DB時間の100%を超える可能性があります。たとえば、I/O操作の読取りが多数実行されて、ADDMが1つ目の結果としてDB時間の50%がI/OアクティビティのSQL文の影響であるとレポートし、もう1つの結果としてDB時間の75%がバッファ・キャッシュの不足の影響であるとレポートするような場合です。

問題の検出結果は推奨事項のリストと関連付けてパフォーマンスの問題による影響を軽減できます。各推奨事項には推奨事項が実装される場合にDB時間の一部の見積りが節約できるという利点があります。複数の推奨事項がADDMの検出結果と関連付けられている場合、推奨事項には同一の問題を解決する代替手段が含まれる場合があります。この場合、利点の合計は結果の影響より高い場合があります。同一の問題を解決するためにすべての推奨事項を適用する必要はありません。

推奨事項はアクションとその理由で構成されています。推奨事項の実行により予測される利点を得るためには、推奨されたすべてのアクションを適用する必要があります。また、これらのアクションが推奨される理由の説明と、推奨事項の実装に関する詳細情報が提供されます。場合によっては、ADDMアクションによって複数の解決策が提示されることがあります。その場合は、最も実装が簡単な解決策を選択します。

自動データベース診断モニターの推奨事項の実装

この項では、ADDMの推奨事項の実装方法を説明します。ADDMの検出結果は「ADDMパフォーマンス分析」の「自動データベース診断モニター(ADDM)」ページに表示されます。

perf_analysis.gifの説明が続きます。
perf_analysis.gifの説明

ADDMの推奨事項の実装手順

  1. データベースのホームページの「診断サマリー」で、「ADDM結果」の横にあるリンクをクリックします。

    「自動データベース診断モニター(ADDM)」ページが表示されます。

  2. 「データベース・アクティビティ」セクションで、調査するADDMのアイコンをクリックします。

    「ADDMパフォーマンス分析」セクション内のデータは、選択したADDMの実行に基づいて変更されます。

  3. 「ADDMパフォーマンス分析」セクションで「ADDM結果」をクリックします。

    この例では、最も影響のある結果は「上位SQL文」です。

    「パフォーマンス結果の詳細」ページが表示されます。

    次の例では、3つの推奨事項が示されています。1つ目の推奨事項では、分析期間中にDB時間が最大で39.5%短縮されるメリットがあるという見積りが示されています。2つ目の推奨事項ではDB時間が最大で25.6%、3つ目の推奨事項では最大で18.6%短縮されるメリットがあるという見積りが示されています。

    perf_finding_details.gifの説明が続きます。
    perf_finding_details.gifの説明

  4. 「推奨」で「表示」をクリックして、推奨事項および各推奨事項に該当するアクションを確認します。

    「カテゴリ」列には推奨事項のカテゴリが表示されます。「ベネフィット(%)」列には推奨事項を実装することによって得ることができるメリットの見積りが表示されます。

    addm_rec.gifの説明が続きます。
    addm_rec.gifの説明

  5. 一連のアクションが推奨される理由が参照可能な場合は、「追加情報」をクリックするか、「追加情報」の下に表示される内容を確認します。

    たとえば、「サイズ不足のバッファ・キャッシュ」の結果には、DB_CACHE_SIZE初期化パラメータの推奨値を示す追加情報が含まれています。

    addm_addit_info.gifの説明が続きます。
    addm_addit_info.gifの説明

  6. 検出結果の履歴を表示するには、「結果履歴」をクリックします。

    「結果履歴」ページが表示されます。

    finding_history.gifの説明が続きます。
    finding_history.gifの説明

    「結果履歴」ページに、選択した3時間間隔に特定の結果が検出された頻度が表示されます。この情報を使用して、結果がシステムの一時的な問題であるか、または永続的な問題であるかを判断します。この情報に基づいて、結果に関連付けられたアクションの実行が必要かどうかを判断できます。

    アクティブ・セッション・グラフには、検出結果およびその他の負荷がシステムに与える影響が表示されます。表示は次のように変更できます。

    1. 3時間間隔を変更するには、「アクティブ・セッション」グラフの影付きのボックスをクリックしてドラッグします。

    2. 日付を変更するには、「表示」フィールドに目的の日付を入力して「実行」をクリックします。

    3. 結果の詳細を表示するには、「選択した3時間間隔の詳細」で「結果詳細」列のリンクをクリックすると、対応するADDMの検出結果を表示する「パフォーマンス結果の詳細」ページが表示されます。

  7. オプションとして、チューニング済またはこれ以上チューニングできない既知の結果を抑制するフィルタを作成します。選択したADDM結果のフィルタを作成するには、次の手順を実行します。

    1. 「フィルタ」をクリックします。

      結果に対するフィルタ・ページが表示されます。

    2. 「作成」をクリックします。

      「結果に対するフィルタの作成」ページが表示されます。

    3. ADDMフィルタ名を「名前」フィールドに入力します。

    4. 「アクティブ・セッション」フィールドで、アクティブ・セッションの数を条件としてフィルタ基準を指定します。

      指定したフィルタ条件よりADDMの検出結果のアクティブ・セッション数が少ない場合、将来のADDMの実行のために、データベースによってこの検出結果にフィルタが適用されます。

    5. %アクティブ・セッション・フィールドで、アクティブ・セッションの割合を条件としてフィルタ基準を指定します。

      指定したフィルタ条件よりADDMの検出結果のアクティブ・セッション数が少ない場合、将来のADDMの実行のために、データベースによってこの検出結果にフィルタが適用されます。

    6. 「OK」をクリックします。

  8. 選択された推奨事項で必要なアクションを実行します。

    実行するアクションのタイプによって、「実装」または「アドバイザをただちに実行」などのいくつかのオプションが使用可能になります。これらのオプションを使用すると、一度のクリックですぐに推奨事項を実装できます。

    手順4に示す例では、最も単純な解決方法は、「アドバイザをただちに実行」をクリックして、SQL文でSQLチューニング・アドバイザのタスクをすぐに実行することです。

スナップショット統計の表示

AWRでEnterprise Managerを使用して、作成されるスナップショットに含まれるデータを表示できます。スナップショット・データは主にRAW統計で構成されているため、通常、確認する必要はありません。かわりに、ADDMを使用して、パフォーマンスの問題を識別するこれらの統計を分析する必要があります。スナップショット統計は、主に上級ユーザー、またはパフォーマンス分析のStatspackの使用に慣れているDBA向けです。

スナップショット統計の表示手順

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. 「その他の監視リンク」セクションで、「スナップショット」をクリックします。

    最新のスナップショットのリストがある「スナップショット」ページが表示されます。

  3. スナップショットに収集された統計を表示するには、表示するスナップショットの「ID」リンクをクリックします。

    「スナップショットの詳細」が表示され、「詳細」サブページが表示されます。

    snapshot_det.gifの説明が続きます。
    snapshot_det.gifの説明

    この例では、以前のスナップショット(スナップショット100)から選択されたスナップショット(スナップショット101)までの収集された統計が表示されます。

  4. ワークロード・リポジトリの統計レポートを表示するには、「レポート」をクリックします。

    ワークロード・リポジトリ・レポートが表示されます。

  5. オプションで、「ファイルに保存」をクリックして、後のアクセスのためにレポートを保存します。