この章では、パフォーマンス統計の収集について説明します。この章には次の項があります。
パフォーマンスの問題を効果的に診断するには、統計が使用可能である必要があります。Oracle Databaseは、システム、セッションおよび個々のSQL文について様々なタイプの累積的な統計を生成します。また、Oracle Databaseは、セグメントおよびサービスに関する累積的な統計も追跡します。通常、これらの範囲でのパフォーマンスの問題を分析する場合は、問題となる期間における統計の変化(デルタ値)を調べます。特に、期間開始時における統計の累積値と終了時における累積値の違いを調べます。
統計の累積値は、通常、V$SESSTAT
およびV$SYSSTAT
ビューなどの動的パフォーマンス・ビューを介して使用できます。動的ビューの累積値は、データベース・インスタンスの停止時にリセットされることに注意してください。自動ワークロード・リポジトリ(AWR)は、セッション・レベルを除くすべてのレベルでほとんどの統計の累積値とデルタ値を自動的に存続させます。この処理は定期的に繰り返され、その結果はAWRスナップショットと呼ばれます。スナップショットにより取得されるデルタ値は、期間中の各統計の変化を表します。「自動ワークロード・リポジトリの概要」を参照してください。
メトリックは、Oracle Databaseで収集されるもう1つのタイプの統計です。メトリックは、なんらかの累積統計における変化の割合として定義されます。この割合は、時間、トランザクション、データベース・コールなど、様々な単位で測定できます。たとえば、1秒当たりのデータベース・コールの数はメトリックです。メトリック値は、一部のV$
ビューに表示されます。ビューに表示される値は、きわめて短い時間間隔(通常は60秒)での平均値です。最新のメトリック値の履歴は、V$
ビューを介して使用でき、データの一部はAWRスナップショットでも存続されます。
Oracleで収集される第3のタイプの統計データは、サンプル・データです。アクティブ・セッション履歴(ASH)サンプラは、サンプリングを実行します。ASHは、すべてのアクティブ・セッションの現在の状態をサンプリングします。このデータはメモリーに収集され、V$
ビューでデータにアクセスできます。AWRスナップショット処理によって、このデータは永続記憶域にも書き込まれます。「アクティブ・セッション履歴」を参照してください。
パフォーマンスの問題に関する強力な診断手段は、統計的ベースラインを使用することです。統計的ベースラインは、通常はシステムがピーク負荷で正常に動作している期間中に取得された統計的割合の集合です。パフォーマンスの低下期間中に取得された統計をベースラインと比較すると、大幅に値が大きくなっていて問題の原因だと思われる特定の統計を検出しやすくなります。
AWRは、AWRスナップショットのペアまたは範囲をベースラインとして指定して保存できるようにすることで、ベースライン・データの取得をサポートします。ベースラインとして選択する期間は慎重に考慮してください。ベースラインはシステムのピーク負荷を適切に表している必要があります。将来、これらのベースラインをパフォーマンスが低い期間中に取得されたスナップショットと比較できます。
Oracle Enterprise Managerは、動的パフォーマンス・ビューにリアルタイム・データとAWR履歴表からの履歴データを表示するための推奨ツールです。また、Enterprise Managerを使用してオペレーティング・システムとネットワークの統計データを取得し、AWRデータとの相関付けもできます。詳細は、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください。
この項では、次の項目について説明します。
データベース統計は、データベースの負荷のタイプ、およびデータベースで使用される内部リソースと外部リソースに関する情報を提供します。この項では、重要な次の統計について説明します。
待機イベントは、処理を継続する前にイベントが完了するまで待機する必要があることを示すために、サーバー・プロセスまたはスレッドによって増やされる統計です。待機イベント・データは、ラッチの競合、バッファの競合、I/Oの競合などのパフォーマンスに影響を与えると思われる様々な問題の症状を表します。
待機イベントに関する高水準の分析を容易にするために、イベントはクラス別にグループ化されています。クラスには、Administrative、Application、Cluster、Commit、Concurrency、Configuration、Idle、Network、Other、Scheduler、System I/O、およびUser I/Oがあります。
待機クラスは、一般に待機イベントで問題を解決するために適用される共通の解決策に基づきます。たとえば、排他TXロックは通常はアプリケーション・レベルの問題であり、HWロックは通常は構成の問題です。
次のリストに、一部のクラスでの一般的な待機例を示します。
Application: 行レベル・ロックまたは明示的ロック・コマンドが原因のロック待機。
Commit: コミット後のREDOログ書込み確認の待機。
Idle: SQL*Net
message
from
client
など、セッションが非アクティブであることを示す待機イベント
Network: ネットワーク上でのデータ送信の待機。
User I/O: ディスクからのブロック読取りの待機。
インスタンスの待機イベント統計には、バックグラウンド・プロセスとフォアグラウンド・プロセスの両方の統計が含まれます。通常は、フォアグラウンド・アクティビティのチューニング作業が中心となるため、インスタンス・アクティビティ全体は、チューニングに役立つように、関連するV$
ビュー内でフォアグラウンドとバックグラウンドの統計に分類されます。
V$SYSTEM_EVENT
ビューには、インスタンスのフォアグラウンド・アクティビティの待機イベント統計と、インスタンスの待機イベント統計が表示されます。V$SYSTEM_WAIT_CLASS
ビューには、待機クラスへの集計後に、これらのフォアグラウンドおよびインスタンスの待機イベント統計が表示されます。V$SESSION_EVENT
およびV$SESSION_WAIT_CLASS
には、セッション・レベルでの待機イベント統計と待機クラス統計が表示されます。
関連項目: Oracle待機イベントの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
Oracleデータベースをチューニングする場合は、コンポーネントごとに固有の統計セットがあります。システム全体を調べるには、共通の比較尺度が必要です。このため、Oracle Databaseのほとんどのアドバイザおよびレポートでは、統計が時間単位で記述されます。また、V$SESS_TIME_MODEL
およびV$SYS_TIME_MODEL
ビューには、時間モデル統計が用意されています。共通の時間という尺度で計測すると、データベース操作に対する影響を数量化して識別できます。
最も重要な時間モデル統計はDB
time
です。この統計はデータベース・コールの合計所要時間を表し、インスタンスのワークロード合計のインジケータでもあります。アイドル待機イベントを待機していないすべてのセッション(アイドル状態でないユーザー・セッション)のCPU時間および待機時間を集計することで計算されます。
DB
time
は、インスタンスの起動時から累積的に測定されます。DB
time
はアイドル状態でないすべてのユーザー・セッションの時間を合計して計算されるため、DB
time
がインスタンス起動後の実際の経過時間を超える可能性があります。たとえば、30分実行されているインスタンスに4つのアクティブ・ユーザー・セッションがあれば、その累積DB
time
は約120分になります。
Oracleシステムのチューニングは、データベースに対するアクションの実行において所要時間を短縮すること、または単にDB
time
を短縮することを目的としています。他の時間モデル統計は、ログオン操作、ハード解析およびソフト解析など、特定のアクションへの影響を(時間単位で)数量化した情報を提供します。
関連項目: V$SESS_TIME_MODEL およびV$SYS_TIME_MODEL ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
V$ACTIVE_SESSION_HISTORY
ビューには、インスタンス内でサンプリングされたセッション・アクティビティが表示されます。アクティブ・セッションは毎秒サンプリングされ、SGAの循環バッファに格納されます。データベースに接続中で、Idle待機クラスに属さないイベントを待機中のセッションは、アクティブ・セッションとみなされます。これには、サンプリング時にCPUにあったセッションが含まれます。
各セッションのサンプルは一連の行で、V$ACTIVE_SESSION_HISTORY
ビューは、サンプルごとに各アクティブ・セッションについて1行を、最後のセッション・サンプルの行から順番に戻します。アクティブ・セッションのサンプルはSGAの循環バッファに格納されるため、システム・アクティビティが多いほど、循環バッファにセッション・アクティビティを格納できる秒数は短くなります。つまり、セッション・サンプルがV$
ビューに表示される期間、またはV$
ビューに表示されるセッション・アクティビティの秒数は、データベース・アクティビティに全面的に依存します。
V$ACTIVE_SESSION_HISTORY
の内容も、AWRスナップショットの一部としてディスクにフラッシュされます。大規模なシステム・アクティビティ中は、このV$
ビューの内容が極端に大きくなる可能性があるため、ディスクにはセッション・サンプルの一部のみが書き込まれます。
アクティブ・セッションのみを取得することで、システム上で許可されるセッション数ではなく、実行される作業に直接関連するサイズで管理可能なデータ・セットが表示されます。ASHを使用すると、V$ACTIVE_SESSION_HISTORY
ビューの現行データとDBA_HIST_ACTIVE_SESS_HISTORY
ビューの履歴データの両方を検査して詳細な分析を実行でき、通常、ワークロードを再現してパフォーマンス・トレース情報を追加収集する必要がありません。ASHには、取得されたSQL文ごとの実行計画情報も含まれます。この情報を使用することで、SQLの経過時間に多くの影響を与えているSQL実行部分を特定できます。ASHに表示されるデータは、次のように、取得する各種ディメンションでロール・アップできます。
SQL文のSQL識別子
SQL文の実行に使用されるSQL計画のSQL計画識別子およびハッシュ値
SQL実行計画情報
オブジェクト数、ファイル数およびブロック数
待機イベント識別子およびパラメータ
セッション識別子およびセッション・シリアル番号
モジュールおよびアクション名
セッションのクライアント識別子
サービス・ハッシュ識別子
コンシューマ・グループ識別子
指定した期間のASH情報をレポートに収集できます。詳細は、「アクティブ・セッション履歴レポートの生成」を参照してください。
アクティブ・セッション履歴は、Active Data Guardフィジカル・スタンバイ・インスタンスおよびOracle Automatic Storage Management(Oracle ASM)インスタンスでも使用できます。これらのインスタンスでは、現在のセッションのアクティビティが収集されてV$ACTIVE_SESSION_HISTORY
ビューに表示されますが、ディスクへの書込みは行われません。
関連項目:
|
V$SYSSTAT
およびV$SESSTAT
ビューを使用すると、システム・レベルとセッション・レベルで多数の累積的データベース統計を使用できます。
関連項目: V$SYSSTAT およびV$SESSTAT ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
オペレーティング・システム統計は、オペレーティング・システム自体のパフォーマンスと、システムの主要ハードウェア・コンポーネントの使用率やパフォーマンスも提供します。この情報は、CPUサイクルや物理メモリーなどのリソースがすべて使用される可能性を検出し、ディスク・ドライブなどの周辺機器のパフォーマンスの低下を検出するために重要です。
オペレーティング・システム統計は、ハードウェアやオペレーティング・システムの稼働状態を示します。システム・アナリストの多くは、ハードウェア・リソースの不足に対してハードウェアを増設することで対応します。これは、オペレーティング・システム統計に示される一連の症状に対する対処療法です。医師が診断を下すときに患者の体温、脈拍および痛みを参考にするのと同じように、オペレーティング・システム統計は診断ツールとみなすのが最適です。ボトルネックの識別を容易にするために、パフォーマンス分析の対象となっているシステム内のすべてのサーバーについてオペレーティング・システム統計を収集します。
オペレーティング・システム統計には次のものが含まれます。
CPU使用率は、チューニング・プロセスで最も重要なオペレーティング・システム統計です。システム全体のCPU使用率と、マルチプロセッサ環境での各CPUの使用率を取得します。各CPUの使用率から、シングル・スレッドおよびスケーラビリティの問題を検出できます。
ほとんどのオペレーティング・システムでは、CPU使用率を、ユーザー領域またはユーザー・モードでの経過時間と、カーネル領域またはカーネル・モードでの経過時間でレポートします。この追加統計情報を使用すると、CPU上で実際に何が実行されているかをより詳細に分析できます。
Oracle Databaseを実行しているシステムで、通常はアプリケーションを1つのみ実行している場合、データベース・アクティビティはユーザー領域で実行されます。データベース・リクエストに対するサービスの提供に必要なアクティビティ(スケジューリング、同期、I/O、メモリー管理、プロセス/スレッドの作成と破棄など)は、カーネル・モードで実行されます。CPUを十分に活用しているシステムでは、正常なOracleデータベースの場合、その65%から95%がユーザー領域で実行されます。
V$OSSTAT
ビューには、データベース内のマシン・レベルの情報が収集され、ハードウェア・レベルのリソース問題の存在を容易に判別できます。V$SYSMETRIC_HISTORY
ビューでは、「ホストCPU使用率」メトリックの1時間の履歴と、1分ごとの間隔でのCPU使用率の割合表示が示されます。V$SYS_TIME_MODEL
ビューには、OracleデータベースによるCPU使用率の統計が表示されます。両方の統計セットを使用すると、Oracleデータベースや他のシステムのアクティビティがCPUの問題の原因となっているかどうかを判断できます。
仮想メモリー統計は、主として、システム上でページングまたはスワッピングのアクティビティがほとんど発生していないことを検証するために使用します。ページングまたはスワッピングが発生すると、システム・パフォーマンスは急速かつ予想外に低下します。
個々のプロセスのメモリー統計を使用すると、プログラミングの失敗でプロセス・ヒープから取得したメモリーを割当て解除できなかったことによるメモリー・リークを検出できます。これらの統計は、システムが起動後に安定状態に達した後、メモリー使用量が増加していないことを確認するために必要です。これは特に、複数のユーザー操作間でセッション状態が保持され、割当て解除が完全でない完了時状態情報のある中間層コンピュータの共有サーバー・アプリケーションにおいて重大な問題です。
データベースは一連のディスク上に常駐しているため、データベースのパフォーマンスにとってはI/Oサブシステムのパフォーマンスが非常に重要になります。ほとんどのオペレーティング・システムでは、ディスク・パフォーマンスに関する詳細な統計が提供されます。最も重要なディスク統計は、現在のレスポンス時間とディスク・キューの長さです。この統計は、ディスクが最適な状態で実行されているか、または過度の使用状態にあるかを示します。
I/Oシステムの通常のパフォーマンスを測定します。1ブロックの読取りに関する標準値は、使用しているハードウェアに応じて5から20ミリ秒です。ハードウェアが通常のパフォーマンス値を大幅に上回るレスポンス時間を示している場合は、不適切な状態で実行されているか過度の使用状態にあります。これがボトルネックです。ディスク・キューが2つを超えたら、そのディスクがシステムのボトルネックである可能性があります。
Oracle Databaseでは、発行したI/Oコールの一貫したI/O統計セットも保持されます。これらの統計は、次のディメンションにおいて、単一および複数のブロック読取り/書込み操作に対して取得されます。
コンシューマ・グループ
Oracle Database Resource Managerが有効な場合、V$IOSTAT_CONSUMER_GROUP
ビューには現在有効なリソース・プランに含まれるすべてのコンシューマ・グループのI/O統計が取得されます。データベースは累積的な統計を1時間ごとにサンプリングし、履歴統計としてAWRに格納します。
データベース・ファイル
現在アクセスされているか、または過去にアクセスされたデータベース・ファイルのI/O統計は、V$IOSTAT_FILE
ビューに取得されます。
データベース機能
データベース機能(LGWRやDBWRなど)のI/O統計は、V$IOSTAT_FUNCTION
ビューに取得されます。
ネットワーク統計は、ディスク統計の場合とほぼ同様に、ネットワークまたはネットワーク・インタフェースが過負荷になっているかどうか、または最適に実行されているかどうかを判断する際に使用できます。今日のネットワーク・アプリケーションでは、ネットワーク待機時間が実際のユーザー・レスポンス時間の大部分を占めることがあります。このため、この統計は重要なデバッグ・ツールです。
Oracle Databaseでは、V$IOSTAT_NETWORK
ビューに一連のネットワークI/O統計が保持されます。
表5-1は、UNIXでのオペレーティング・システム統計収集ツールを示します。Windowsの場合は、パフォーマンス・モニター・ツールを使用します。
最初にパフォーマンス・データを調査するときは、統計を調べることによって潜在的な理論を構築できます。統計の解釈が正しいかどうかを確認する1つの方法は、他のデータとのクロスチェックを行うことです。これにより、統計またはイベントが実際に対象のものであるかどうかがわかります。また、フォアグラウンド・アクティビティはチューニング可能であるため、バックグラウンド・アクティビティの統計を分析する前に、フォアグラウンド・アクティビティの統計を先に分析することをお薦めします。
ここではいくつかの陥りやすい誤りについて説明します。
ヒット率
チューニングを行う場合は、問題があるかどうかを容易に判断するために、比率を計算することが一般的です。そのような率には、バッファ・キャッシュ・ヒット率、ソフト解析率およびラッチ・ヒット率があります。これらの率を、パフォーマンス・ボトルネックがあるかどうかを厳密に判断する識別子として使用しないでください。むしろ、インジケータとして使用してください。ボトルネックがあるかどうかを識別するには、他の関連する証拠を調べます。「バッファ・キャッシュ・ヒット率の計算」を参照してください。
時間統計のある待機イベント
インスタンス・レベルでTIMED_STATISTICS
をTRUE
に設定すると、使用可能な待機カウントの他にイベントの待機時間も収集します。このデータは、イベントの合計待機時間とデータ収集間の総経過時間を比較する場合に役立ちます。たとえば、待機イベントが2時間の期間のうちのわずか30秒であれば、このイベントが待機時間別に順序付けされるときに最高ランクの待機イベントであっても、このイベントを調べて得られるものはほとんどありません。ただし、イベントが45分間のうちの30分であれば、そのイベントは調べる価値があります。「待機イベント」を参照してください。
Oracle Database統計とその他の要因の比較
統計を調べる場合、統計に価値があるかどうかに影響を与える他の要因を考慮することが重要です。そのような要因には、ユーザー負荷やハードウェア能力があります。45分間のうちの30分間が待機時間であったイベントでも、システム上に2000人のユーザーがいて、ホスト・ハードウェアが64ノード・コンピュータであった場合は問題とはみなされないことがあります。
時間統計のない待機イベント
TIMED_STATISTICS
がfalseの場合、イベントの待機時間は使用できません。したがって、各イベントを待機した回数で待機イベントを順序付けることのみ可能です。最大待機回数を持つイベントが潜在的なボトルネックを示すことがありますが、主要なボトルネックとは言えません。これは、イベントを何度も待機する場合に発生する可能性がありますが、そのイベントを待機する合計時間は短時間です。その逆も成り立ちます。待機回数が少ないイベントは、待機時間が合計待機時間の大きな割合を占めている場合に問題になることがあります。比較のために使用する待機時間がなければ、待機イベントが実際に重要かどうかの判断は困難です。
アイドル待機イベント
Oracle Databaseでは、いくつかの待機イベントを使用して、Oracleサーバー・プロセスがアイドル状態であるかどうかを示します。一般に、これらのイベントはパフォーマンスの問題を調べるときは有効でなく、待機イベントを調べるときは無視する必要があります。「アイドル待機イベント」を参照してください。
計算済統計
計算済統計(割合、トランザクションについて正規化された統計、比率など)を解釈する場合は、計算済統計を実際の統計カウントと相互検証することが重要です。この検証で、導出された割合が実際に重要かどうかが確認されます。通常、統計カウントが少ないと異常な比率を除外できます。たとえば、最初の調査で、ソフト解析率50%は一般に潜在的なチューニング領域を示します。ただし、データ収集期間にハード解析が1つとソフト解析が1つのみあった場合、この領域が重要な領域でないことを統計カウントが示していても、ソフト解析率は50%になります。この場合、生の統計カウントが低いため、比率は重要ではありません。
関連項目:
|
自動ワークロード・リポジトリ(AWR)では、問題の検出および自己チューニングを目的として、パフォーマンス統計が収集、処理および保守されます。このデータはメモリーとデータベースの両方に格納されます。収集されたデータは、レポートとビューの両方に表示できます。
データベース・セグメントのアクセス統計と使用統計を決定するオブジェクト統計。
アクティビティの時間使用に基づく時間モデル統計。V$SYS_TIME_MODEL
およびV$SESS_TIME_MODEL
ビューに表示されます。
V$SYSSTAT
およびV$SESSTAT
ビューで収集されるシステム統計とセッション統計の一部。
システム上で最大負荷を生成しているSQL文。経過時間やCPUタイムなどの基準に基づきます。
最新のセッション・アクティビティの履歴を表すASH統計。
AWRを使用したデータベース統計の収集はデフォルトで有効になっており、STATISTICS_LEVEL
初期化パラメータにより制御されます。AWRによる統計の収集を有効にするには、STATISTICS_LEVEL
パラメータをTYPICAL
またはALL
に設定する必要があります。デフォルトの設定はTYPICAL
です。STATISTICS_LEVEL
をBASIC
に設定すると、AWRを含め多くのOracle Database機能が無効になります。この設定はお薦めしません。STATISTICS_LEVEL
をBASIC
に設定しても、DBMS_WORKLOAD_REPOSITORY
パッケージを使用すればAWR統計を手動で取得できます。ただし、セグメント統計やメモリー・アドバイザ情報など、多くのシステム統計のメモリー内収集が無効になるため、これらのスナップショットで取得された統計は不完全になる可能性があります。STATISTICS_LEVEL
の詳細は、Oracle Databaseリファレンスを参照してください。
スナップショットは、ADDMによりパフォーマンスの比較に使用される、特定の期間の履歴データのセットです。デフォルトでは、1時間ごとにパフォーマンス・データのスナップショットが自動的に生成され、その統計はワークロード・リポジトリに8日間保存されます。スナップショットを手動で作成することもできますが、通常は必要ありません。スナップショット間隔内のデータは、自動データベース診断モニター(ADDM)によって分析されます。ADDMの詳細は、「自動データベース診断モニターの概要」を参照してください。
AWRは、スナップショット間の違いを比較し、システム負荷への影響に基づいて収集するSQL文を判別します。これにより、期間中に収集する必要のあるSQL文の数が減少します。
スナップショットの管理の詳細は、「スナップショットの管理」を参照してください。
ベースラインには、パフォーマンス上の問題が発生したときに、類似する他のワークロード期間と比較するために保持されている特定の期間のパフォーマンス・データが含まれます。ベースラインに含まれるスナップショットは、自動AWR消去プロセスの対象からは除外され、無期限に保存されます。
Oracle Databaseで使用可能なベースラインには、次の複数のタイプがあります。
固定ベースラインは、過去の指定時における、固定した連続的な期間に対応します。ベースラインは最適なレベルでのシステム動作を表す必要があるため、固定ベースラインを作成する前に、ベースラインとして選択する期間を慎重に検討してください。将来的に、このベースラインを、パフォーマンスの低下期間中に取得された別のベースラインまたはスナップショットと比較して、時間経過に沿ってパフォーマンスの低下を分析できます。
変動ウィンドウ・ベースラインは、AWR保存期間内に存在するすべてのAWRデータに対応します。これは、AWRの全保存期間におけるAWRデータを使用してメトリックしきい値を計算できるため、適応しきい値を使用する際に役立ちます。
Oracle Databaseでは、システム定義による変動ウィンドウ・ベースラインが自動的に維持されます。システム定義による変動ウィンドウ・ベースラインのデフォルトのウィンドウ・サイズは、現在のAWR保存期間であり、デフォルトでは8日です。適応しきい値を使用する予定の場合は、しきい値を正確に計算するため、より長い変動ウィンドウ(30日など)を使用することを検討してください。変動ウィンドウ・ベースラインのサイズを変更するには、変動ウィンドウの日数を、AWR保存期間の日数以下の値に変更します。したがって、変動ウィンドウのサイズを拡張するには、先にAWR保存期間を適切に拡張しておく必要があります。
ベースライン・テンプレートを使用すると、将来の連続的な期間におけるベースラインを作成できます。ベースライン・テンプレートには、単一と繰返しという2つのタイプがあります。
単一ベースライン・テンプレートでは、将来の単一の連続的な期間におけるベースラインを作成できます。このテクニックは、将来に取得する期間が前もってわかっている場合に便利です。たとえば、次の週末にスケジュールされているシステム・テストの最中にAWRデータを取得することが可能です。この場合、単一ベースライン・テンプレートを作成することで、テストが実行されたときに自動的にその期間を取得できます。
繰返しベースライン・テンプレートでは、時間スケジュールの繰返しに基づいてベースラインを作成および削除できます。このテンプレートは、Oracle Databaseにより継続して連続的な期間を自動的に取得する場合に便利です。たとえば、1か月間にわたり毎週月曜日の朝にAWRデータを取得することが可能です。この場合、繰返しベースライン・テンプレートを作成することで、毎週月曜日という繰返しスケジュールに基づいてベースラインを自動的に作成し、1か月といった指定の期限の経過後に古いベースラインを自動的に削除できます。
適応しきい値を使用すると、管理オーバーヘッドを最小限に抑えながら、パフォーマンスの問題を監視および検出できます。適応しきい値は、変動ウィンドウ・ベースラインで取得されるメトリック値から導出された統計を使用して、システム・メトリックの警告しきい値とクリティカル・アラートしきい値を自動的に設定できます。これらのしきい値の統計は週に1回再計算され、時間の経過とともに変化するシステムのパフォーマンスに応じて新しいしきい値になります。適応しきい値はしきい値を週に1回再計算する以外に、定期的なワークロードのパターンに基づいて1日または週の異なる時間帯の様々なしきい値を計算します。
たとえば、多くのデータベースでは、日中のオンライン・トランザクション処理(OLTP)と夜間のバッチ処理をサポートしています。トランザクションごとのレスポンス時間のパフォーマンス・メトリックは、日中のOLTPパフォーマンスの低下の検出に役立ちます。ただし、有用なOLTPのしきい値は、長時間実行トランザクションが一般的なバッチ・ワークロードに対しては、ほとんどの場合低すぎます。そのため、OLTPに適切なしきい値では、バッチ処理時に不適切なパフォーマンス・アラートが頻繁にトリガーされることがあります。適応しきい値は、このようなワークロードのパターンを検出し、日中や夜間用の様々なしきい値を自動的に設定できます。
注意: Oracle Database 11gリリース2(11.2)では、Oracle Databaseによってデータベースの適切な時間のグループ化が自動的に決定されます。ただし、Oracle Database 11gリリース2(11.2)より前のリリースでは、時間のグループ化はデータベース管理者によって手動で指定されます。 |
適応しきい値には、次の2種類があります。
最大パーセント: しきい値は、変動ウィンドウ・ベースライン内のデータに関して観察された最大値の割合の倍数として計算されます。
重大レベル: しきい値は、変動ウィンドウ・ベースライン内のデータに基づくしきい値を超える値が観察されることがどの程度異常かを表す統計の百分位数に設定されます。次のいずれかの百分位数を指定します。
High (.95): この値を超えるのは100回のうち5回のみと予測されます。
Very High (.99): この値を超えるのは100回のうち1回のみと予測されます。
Severe (.999): この値を超えるのは1,000回のうち1回のみと予測されます。
Extreme (.9999): この値を超えるのは10,000回のうち1回のみと予測されます。
注意: Severe (.999)またはExtreme (.9999)を指定した場合、Oracle Databaseでは内部計算を実行してしきい値を設定します。ベースラインのデータを使用してこれらのレベルのしきい値を設定できず、重大レベルのしきい値が設定されない場合があります。予測どおりにアラートを受信せず、重大レベルのしきい値Severe (.999)またはExtreme (.9999)を指定した場合、このしきい値をVery High (.99)やHigh (.95)などの低い値に設定できます。また、重大レベルのしきい値のかわりに、最大パーセントのしきい値を設定することもできます。しきい値を変更して、受信するアラートが多すぎることがわかった場合は、アラートの発生回数を増やすことができます。 |
最大パーセントのしきい値は、システムをピーク・ワークロードに対応するようサイジングし、現在のワークロード・ボリュームが以前の高い値に近づいているか、その値を超えているときにアラートを生成する必要がある場合に特に役立ちます。未知だが明確な制限値を持つメトリックは、このような設定の適切な候補になります。たとえば、1秒当たりの生成REDOのメトリックは、通常、最大パーセントのしきい値に対する適切な候補になります。
重大レベルのしきい値は、システムが正常に機能しているときに統計的に安定した動作を示すメトリックでは非常に役立ちますが、パフォーマンスが低下している場合は大きく変化する可能性があります。たとえば、トランザクションごとのレスポンス時間のメトリックは、適切に調整されたOLTPシステムの場合は安定していますが、パフォーマンスの問題が発生する場合は広い範囲で変動する可能性があります。重大レベルのしきい値は、異常なメトリックの値と異常なシステムのパフォーマンスの両方が発生する場合にアラートを生成することを意図しています。
注意: ベースライン・メトリックを管理するための主インタフェースは、Oracle Enterprise Managerです。ベースライン・メトリックの適応しきい値を作成するには、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』の説明に従ってOracle Enterprise Managerを使用します。 |
AWRによって使用される領域は、次のように複数の要因によって決まります。
特定の時点におけるシステム内のアクティブ・セッション数
スナップショット間隔
スナップショット間隔により、スナップショットの収集頻度が決定されます。スナップショット間隔が短いほど頻度が高くなり、AWRにより収集されるデータ量が増大します。
履歴データの保存期間
保存期間により、このデータが消去前に保持されている期間が決定されます。保存期間が長いほど、AWRによって使用される領域が増加します。
デフォルトでは、スナップショットは1時間に1回取得され、データベースに8日間保存されます。これらのデフォルト設定では、同時アクティブ・セッション数が平均10の標準的なシステムの場合、AWRデータ用に約200から300MBの領域が必要になる可能性があります。スナップショット間隔と保存期間のデフォルト値は、どちらも変更できます。AWR設定の変更の詳細は、「スナップショット設定の変更」を参照してください。
スナップショット間隔を長くして保存期間を短縮すると、AWRの領域使用量を減らすことができます。保存期間を短縮する場合は、Oracle Databaseの複数の自己管理機能が正常に機能するためにAWRデータに依存することに注意してください。十分なデータがないと、次のようなコンポーネントと機能の妥当性および正確さに影響する可能性があります。
自動データベース診断モニター
SQLチューニング・アドバイザ
UNDOアドバイザ
セグメント・アドバイザ
可能な場合は、少なくとも1つのワークロード・サイクル全体で収集できるように、AWR保存期間を十分な長さに設定することをお薦めします。システムのワークロード・サイクルが平日にOLTPワークロード、週末にバッチ・ジョブというような週単位になっている場合、デフォルトのAWR保存期間である8日を変更する必要はありません。ただし、月末の帳簿締め処理時にシステムの月次ピーク負荷が発生する場合は、保存期間を1か月に設定する操作が必要になることがあります。
例外的な状況では、スナップショット間隔を0(ゼロ)に設定して、自動スナップショット収集を無効にすることができます。この場合、ワークロードおよび統計データの自動収集は停止され、Oracle Databaseの自己管理機能の大部分が動作しなくなります。また、スナップショットを手動で作成することもできません。このため、自動スナップショット収集を無効にしないことをお薦めします。
この項では、AWRの管理方法について説明します。この項には、次の項目があります。
デフォルトでは、1時間ごとにスナップショットが生成され、その統計はワークロード・リポジトリに8日間保存されます。必要に応じて、DBMS_WORKLOAD_REPOSITORY
プロシージャを使用してスナップショットを手動で作成、削除および変更できます。これらのプロシージャを起動するには、DBAロールが付与されている必要があります。
スナップショットを管理するための主インタフェースは、Oracle Enterprise Managerです。可能なかぎり、スナップショットは、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』の手順に従ってOracle Enterprise Managerで管理する必要があります。Oracle Enterprise Managerが使用できない場合、スナップショットは、次の項の手順に従ってDBMS_WORKLOAD_REPOSITORY
パッケージで管理します。
関連項目:
|
自動生成されるスナップショットとは異なる時点の統計を取得するには、CREATE_SNAPSHOT
プロシージャを使用して手動でスナップショットを作成できます。たとえば、次のようにします。
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); END; /
この例では、インスタンスのスナップショットがただちに作成され、フラッシュ・レベルは、デフォルトのフラッシュ・レベルであるTYPICAL
に指定されます。このスナップショットは、DBA_HIST_SNAPSHOT
ビューに表示できます。
DROP_SNAPSHOT_RANGE
プロシージャを使用して、一定範囲のスナップショットを削除できます。スナップショットIDとデータベースIDのリストを参照するには、DBA_HIST_SNAPSHOT
ビューをチェックします。たとえば、次の範囲のスナップショットを削除できます。
BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 22, high_snap_id => 32, dbid => 3310949047); END; /
この例では、削除するスナップショットIDの範囲は22から32に指定されています。オプションのデータベース識別子は3310949047
です。dbid
の値を指定しない場合は、デフォルト値としてローカル・データベース識別子が使用されます。
DROP_SNAPSHOT_RANGE
プロシージャがコールされると、スナップショット範囲で指定された期間に属するアクティブ・セッション履歴(ASH)データも消去されます。
指定されたデータベースIDのスナップショット生成に関して、その間隔、保存および取得済上位SQLを調整できますが、この調整によって、Oracle Database診断ツールの精度に影響を与える可能性があります。
INTERVAL
設定は、データベースがスナップショットを自動的に生成する頻度に影響します。RETENTION
設定は、データベースがスナップショットをワークロード・リポジトリに保存する期間に影響します。TOPNSQL
設定は、SQL基準(経過時間、CPU時間、解析コール、共有可能メモリー、バージョン・カウント)ごとにフラッシュする上位SQLの数に影響します。この設定の値は、統計レベルまたはフラッシュ・レベルによる影響を受けず、AWR SQL収集のシステム・デフォルト動作より優先されます。この設定値をMAXIMUM
に設定して、共有SQL領域内の完全なSQLセットを取得することは可能ですが、この値(または非常に大きい数値)に設定すると、収集および保存するデータが増加するため、領域およびパフォーマンスの問題が生じる可能性があります。この設定を調整するには、MODIFY_SNAPSHOT_SETTINGS
プロシージャを使用します。たとえば、次のようにします。
BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 43200, interval => 30, topnsql => 100, dbid => 3310949047); END; /
この例では、保存期間は43,200分(30日)、各スナップショットの間隔は30分、各SQL基準についてフラッシュするための上位SQL数は100と指定されています。NULLが指定された場合、既存の値が保存されます。オプションのデータベース識別子は3310949047
です。dbid
の値を指定しない場合は、デフォルト値としてローカル・データベース識別子が使用されます。DBA_HIST_WR_CONTROL
ビューを使用すると、データベース・インスタンスの現在の設定を確認できます。
この項では、ベースラインの管理方法について説明します。ベースラインを管理するための主インタフェースは、Oracle Enterprise Managerです。可能なかぎり、ベースラインは、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』の手順に従ってOracle Enterprise Managerで管理する必要があります。Oracle Enterprise Managerが使用できない場合、ベースラインは、次の項の手順に従ってDBMS_WORKLOAD_REPOSITORY
パッケージで管理します。
関連項目:
|
この項では、スナップショットの既存範囲を使用してベースラインを作成する方法について説明します。
ベースラインを作成するには、次の手順を実行します。
DBA_HIST_SNAPSHOT
ビューで既存のスナップショットを確認し、使用するスナップショットの範囲を決定します。
CREATE_BASELINE
プロシージャを使用して、次のようにスナップショットの適切な範囲に基づいてベースラインを作成します。
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 270, end_snap_id => 280, baseline_name => 'peak baseline', dbid => 3310949047, expiration => 30); END; /
この例では、270
が開始スナップショットの順序番号で、280
が終了スナップショットの順序番号です。ベースライン名はpeak baseline
です。オプションのデータベース識別子は3310949047
です。dbid
の値を指定しない場合は、ローカル・データベース識別子がデフォルト値として使用されます。オプションのexpiration
パラメータが30
に設定されているため、ベースラインは30日後に自動的に期限切れとなり、削除されます。expiration
の値を指定しない場合、ベースラインは無期限になります。
ベースラインが作成されると、一意のベースラインIDが新規ベースラインに自動的に割り当てられます。ベースラインIDとデータベース識別子は、DBA_HIST_BASELINE
ビューに表示されます。
この項では、既存のベースラインの削除方法について説明します。すでに使用されていないベースラインは、ディスク領域を節約するために定期的に削除できます。ベースラインに関連付けられたスナップショットは、ベースラインが明示的に削除されるか、ベースラインが期限切れになるまで無期限に保持されます。
ベースラインを削除するには、次の手順を実行します。
DBA_HIST_BASELINE
ビューで既存のベースラインを確認し、削除するベースラインを決定します。
DROP_BASELINE
プロシージャを使用して、次のように目的のベースラインを削除します。
BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak baseline', cascade => FALSE, dbid => 3310949047); END; /
この例では、ベースライン名はpeak baseline
です。cascade
パラメータはFALSE
に設定されているため、ベースラインのみが削除されます。このパラメータをTRUE
に設定すると、この削除操作により、ベースラインに関連付けられたスナップショットも削除されます。オプションのdbid
パラメータでは、データベース識別子を指定します(この例では3310949047
)。dbid
の値を指定しない場合は、ローカル・データベース識別子がデフォルト値として使用されます。
この項では、ベースラインの名前を変更する方法について説明します。
ベースラインの名前を変更するには、次の手順を実行します。
DBA_HIST_BASELINE
ビューで既存のベースラインを確認し、名前を変更するベースラインを決定します。
RENAME_BASELINE
プロシージャを使用して、次のように目的のベースラインの名前を変更します。
BEGIN DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE ( old_baseline_name => 'peak baseline', new_baseline_name => 'peak mondays', dbid => 3310949047); END; /
この例では、ベースラインの名前がpeak baseline
(old_baseline_name
パラメータによる指定)からpeak mondays
(new_baseline_name
パラメータによる指定)に変更されます。オプションのdbid
パラメータでは、データベース識別子を指定します(この例では3310949047
)。dbid
の値を指定しない場合、デフォルト値はローカルDBIDです。
この項では、ベースラインで取得される期間中のメトリックしきい値設定を表示する方法について説明します。適応しきい値とともに使用する場合、ベースラインには、データベースでメトリックしきい値を計算する際に使用できるAWRデータが含まれます。SELECT_BASELINE_METRICS
ファンクションにより、ベースライン期間におけるメトリック値のサマリー統計を表示できます。
ベースラインのメトリック情報を表示するには、次の手順を実行します。
DBA_HIST_BASELINE
ビューで既存のベースラインを確認し、メトリック情報を表示するベースラインを決定します。
SELECT_BASELINE_METRICS
ファンクションを使用して、次のように目的のベースラインのメトリック情報を表示します。
BEGIN DBMS_WORKLOAD_REPOSITORY.SELECT_BASELINE_METRICS ( baseline_name => 'peak baseline', dbid => 3310949047, instance_num => '1'); END; /
この例では、ベースライン名はpeak baseline
です。オプションのdbid
パラメータでは、データベース識別子を指定します(この例では3310949047
)。dbid
の値を指定しない場合は、ローカル・データベース識別子がデフォルト値として使用されます。オプションのinstance_num
パラメータでは、インスタンス番号を指定します(この例では1
)。instance_num
の値を指定しない場合は、ローカル・インスタンスがデフォルト値として使用されます。
この項では、デフォルトの変動ウィンドウ・ベースラインのウィンドウ・サイズを変更する方法について説明します。デフォルトの変動ウィンドウ・ベースラインの詳細は、「変動ウィンドウ・ベースライン」を参照してください。
デフォルトの変動ウィンドウ・ベースラインのサイズを変更するには、次のようにMODIFY_BASELINE_WINDOW_SIZE
プロシージャを使用します。
BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE ( window_size => 30, dbid => 3310949047); END; /
window_size
パラメータでは、デフォルトの変動ウィンドウ・サイズの新規ウィンドウ・サイズ(日数)を指定します。この例では、window_size
パラメータは30に設定されています。ウィンドウ・サイズは、AWR保存設定の値以下の値に設定する必要があります。現在のAWR保存期間を超えるウィンドウ・サイズを設定するには、「スナップショット設定の変更」の手順に従ってあらかじめretention
パラメータの値を増やしておく必要があります。
この例では、オプションのdbid
パラメータでデータベース識別子を3310949047
に指定しています。dbid
の値を指定しない場合は、ローカル・データベース識別子がデフォルト値として使用されます。
この項では、ベースライン・テンプレートの管理方法について説明します。ベースライン・テンプレートを使用すると、ベースラインを自動的に作成して将来の指定した期間を取得できます。ベースライン・テンプレートの詳細は、「ベースライン・テンプレート」を参照してください。
ベースライン・テンプレートを管理するための主インタフェースは、Oracle Enterprise Managerです。可能なかぎり、ベースライン・テンプレートは、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』の手順に従ってOracle Enterprise Managerで管理する必要があります。Oracle Enterprise Managerが使用できない場合、ベースライン・テンプレートは、次の項の手順に従ってDBMS_WORKLOAD_REPOSITORY
パッケージで管理します。
関連項目: DBMS_WORKLOAD_REPOSITORY パッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 |
この項では、単一ベースライン・テンプレートの作成方法について説明します。単一ベースライン・テンプレートを使用して、将来の単一の固定期間におけるベースラインを作成できます。たとえば、単一ベースライン・テンプレートを作成し、2009年4月2日の午後5:00から午後8:00までに取得されるベースラインを生成できます。
単一ベースライン・テンプレートを作成するには、次のようにCREATE_BASELINE_TEMPLATE
プロシージャを使用します。
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE ( start_time => '2009-04-02 17:00:00 PST', end_time => '2009-04-02 20:00:00 PST', baseline_name => 'baseline_090402', template_name => 'template_090402', expiration => 30, dbid => 3310949047); END; /
start_time
パラメータでは、作成するベースラインの開始時間を指定します。end_time
パラメータでは、作成するベースラインの終了時間を指定します。baseline_name
パラメータでは、作成するベースラインの名前を指定します。template_name
パラメータでは、ベースライン・テンプレートの名前を指定します。オプションのexpiration
パラメータでは、ベースラインの有効期限(日数)を指定します。指定しない場合、ベースラインは無期限になります。オプションのdbid
パラメータでは、データベース識別子を指定します。指定しない場合は、ローカル・データベース識別子がデフォルト値として使用されます。
この例では、3310949047
というデータベースIDを持つデータベース上に、2009年4月2日の午後5:00から午後8:00までの期間におけるベースラインbaseline_090402
を生成するtemplate_090402
というベースライン・テンプレートが作成されます。このベースラインは、30日後に期限切れとなります。
この項では、繰返しベースライン・テンプレートの作成方法について説明します。繰返しベースライン・テンプレートは、将来の一定期間において特定の時間間隔で繰り返されるベースラインを自動的に作成する際に使用します。たとえば、繰返しベースライン・テンプレートを作成し、2009年の毎週月曜日の午後5:00から午後8:00までに繰り返されるベースラインを生成できます。
繰返しベースライン・テンプレートを作成するには、次のようにCREATE_BASELINE_TEMPLATE
プロシージャを使用します。
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE ( day_of_week => 'monday', hour_in_day => 17, duration => 3, expiration => 30, start_time => '2009-04-02 17:00:00 PST', end_time => '2009-12-31 20:00:00 PST', baseline_name_prefix => 'baseline_2009_mondays_', template_name => 'template_2009_mondays', dbid => 3310949047); END; /
day_of_week
パラメータでは、ベースラインを繰り返す曜日を指定します。hour_in_day
パラメータでは、ベースラインを開始する日中の時間を指定します。duration
パラメータでは、ベースラインを継続させる期間(時間数)を指定します。expiration
パラメータでは、作成する各ベースラインの保存日数を指定します。NULL
に設定すると、ベースラインは無期限になります。start_time
パラメータでは、作成するベースラインの開始時間を指定します。end_time
パラメータでは、作成するベースラインの終了時間を指定します。baseline_name_prefix
パラメータでは、ベースラインの作成時にデータ情報に追加するベースライン接頭辞の名前を指定します。template_name
パラメータでは、ベースライン・テンプレートの名前を指定します。オプションのdbid
パラメータでは、データベース識別子を指定します。指定しない場合は、ローカル・データベース識別子がデフォルト値として使用されます。
この例では、3310949047
というデータベースIDを持つデータベース上に、2009年4月2日の午後5:00から2009年12月31日の午後8:00までの期間において毎週月曜日の午後5:00から午後8:00までベースラインを生成するtemplate_2009_mondays
というベースライン・テンプレートが作成されます。各ベースラインは、baseline_2009_mondays_
という接頭辞付きの名前で作成され、30日後に期限切れとなります。
この項では、既存のベースライン・テンプレートの削除方法について説明します。すでに使用されていないベースライン・テンプレートは、ディスク領域を節約するために定期的に削除できます。
ベースライン・テンプレートを削除するには、次の手順を実行します。
DBA_HIST_BASELINE_TEMPLATE
ビューで既存のベースラインを確認し、削除するベースライン・テンプレートを決定します。
DROP_BASELINE_TEMPLATE
プロシージャを使用して、次のように目的のベースライン・テンプレートを削除します。
BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE ( template_name => 'template_2009_mondays', dbid => 3310949047); END; /
template_name
パラメータでは、削除するベースライン・テンプレートの名前を指定します。この例では、削除するベースライン・テンプレートの名前はtemplate_2009_mondays
です。オプションのdbid
パラメータでは、データベース識別子を指定します(この例では3310949047
)。dbid
の値を指定しない場合は、ローカル・データベース識別子がデフォルト値として使用されます。
Oracle Databaseでは、システム間でAWRデータを転送できます。この機能は、別のシステムを使用してAWRデータを分析する場合に役立ちます。AWRデータを転送するには、次の項の手順に従って、最初にソース・システムのデータベースからAWRスナップショット・データを抽出し、次にそのデータをターゲット・システムのデータベースにロードする必要があります。
awrextr.sql
スクリプトにより、一定範囲のスナップショットに対応するAWRデータをデータベースからデータ・ポンプ・エクスポート・ファイルに抽出します。作成後、このダンプ・ファイルを別のデータベースに転送して抽出データをロードできます。awrextr.sql
スクリプトを実行するには、SYS
ユーザーとしてデータベースに接続する必要があります。
AWRデータを抽出するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrextr.sql
AWRスキーマのデータベースのリストが表示されます。
AWRデータを抽出するデータベースを指定します。
Enter value for db_id: 1377863381
この例では、1377863381
というデータベース識別子を持つデータベースが選択されます。
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
最初と最後のスナップショットIDを指定して、AWRデータを抽出するスナップショットの範囲を定義します。
Enter value for begin_snap: 30 Enter value for end_snap: 40
この例では、スナップショットIDが30のスナップショットが最初のスナップショットとして選択され、スナップショットIDが40のスナップショットが最後のスナップショットとして選択されます。
ディレクトリ・オブジェクトのリストが表示されます。
エクスポート・ダンプ・ファイルが保存されているディレクトリを示すディレクトリ・オブジェクトを指定します。
Enter value for directory_name: DATA_PUMP_DIR
この例では、ディレクトリ・オブジェクトDATA_PUMP_DIR
が選択されます。
エクスポート・ダンプ・ファイルの名前の接頭辞を指定します(.dmp
という接尾辞が自動的に追加されます)。
Enter value for file_name: awrdata_30_40
この例では、awrdata_30_40
というエクスポート・ダンプ・ファイルが、指定したディレクトリ・オブジェクトに対応するディレクトリに作成されます。
Dump file set for SYS.SYS_EXPORT_TABLE_01 is: C:\ORACLE\PRODUCT\11.1.0.5\DB_1\RDBMS\LOG\AWRDATA_30_40.DMP Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at 08:58:20
抽出する必要のあるAWRデータの分量によっては、AWR抽出操作の完了までにしばらく時間がかかる場合があります。ダンプ・ファイルが作成されたら、データ・ポンプを使用してそのファイルを別のシステムに転送できます。
関連項目: データ・ポンプの使用方法の詳細は、『Oracle Databaseユーティリティ』を参照してください。 |
エクスポート・ダンプ・ファイルをターゲット・システムに転送したら、awrload.sql
スクリプトを使用して抽出済のAWRデータをロードできます。awrload.sql
スクリプトにより、スナップショット・データをデータ・ポンプ・ファイルからデータベースに転送するためのステージング・スキーマが最初に作成されます。次に、データはステージング・スキーマから適切なAWR表に転送されます。awrload.sql
スクリプトを実行するには、SYS
ユーザーとしてデータベースに接続する必要があります。
AWRデータをロードするには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrload.sql
ディレクトリ・オブジェクトのリストが表示されます。
エクスポート・ダンプ・ファイルが含まれるディレクトリを示すディレクトリ・オブジェクトを指定します。
Enter value for directory_name: DATA_PUMP_DIR
この例では、ディレクトリ・オブジェクトDATA_PUMP_DIR
が選択されます。
エクスポート・ダンプ・ファイルの名前の接頭辞を指定します(.dmp
という接尾辞が自動的に追加されます)。
Enter value for file_name: awrdata_30_40
この例では、awrdata_30_40
というエクスポート・ダンプ・ファイルが選択されます。
AWRデータをロードするステージング・スキーマの名前を指定します。
Enter value for schema_name: AWR_STAGE
この例では、AWRデータのロード先としてAWR_STAGE
というステージング・スキーマが作成されます。
ステージング・スキーマのデフォルト表領域を指定します。
Enter value for default_tablespace: SYSAUX
この例では、SYSAUX
表領域が選択されます。
ステージング・スキーマの一時表領域を指定します。
Enter value for temporary_tablespace: TEMP
この例では、TEMP
表領域が選択されます。
AWRデータのロード先としてAWR_STAGE
というステージング・スキーマが作成されます。AWR_STAGE
スキーマにロードされたAWRデータは、その後SYS
スキーマのAWR表に転送されます。
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Completed 113 CONSTRAINT objects in 11 seconds Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Completed 1 REF_CONSTRAINT objects in 1 seconds Job "SYS"."SYS_IMPORT_FULL_03" successfully completed at 09:29:30 ... Dropping AWR_STAGE user End of AWR Load
抽出する必要のあるAWRデータの分量によっては、AWR抽出操作の完了までにしばらく時間がかかる場合があります。AWRデータのロード後、ステージング・スキーマは自動的に削除されます。
通常、AWRデータはOracle Enterprise ManagerまたはAWRレポートで表示します。ただし、次のビューで統計を表示できます。
V$ACTIVE_SESSION_HISTORY
このビューには、1秒ごとにサンプリングされたアクティブなデータベース・セッションのアクティビティが表示されます。「アクティブ・セッション履歴」を参照してください。
V$
メトリック・ビューでは、システムのパフォーマンスを追跡するためのメトリック・データが示されます。
メトリック・ビューは、イベント、イベント・クラス、システム、セッション、サービス、ファイルおよび表領域のメトリックなど、様々なグループに編成されています。これらのグループは、V$METRICGROUP
ビューで識別されます。
DBA_HIST
ビュー
DBA_HIST
ビューには、データベースに格納されている履歴データが表示されます。このグループのビューには次のようなものがあります。
DBA_HIST_ACTIVE_SESS_HISTORY
には、最新のシステム・アクティビティに関するメモリー内アクティブ・セッション履歴の内容の履歴が表示されます。
DBA_HIST_BASELINE
には、システム上に収集されたベースラインに関する情報(各ベースラインの時間範囲やベースライン・タイプなど)が表示されます。
DBA_HIST_BASELINE_DETAILS
には、特定のベースラインに関する詳細情報が表示されます。
DBA_HIST_BASELINE_TEMPLATE
には、ベースラインを生成するためにシステムによって使用されるベースライン・テンプレートに関する情報が表示されます。
DBA_HIST_DATABASE_INSTANCE
には、データベース環境に関する情報が表示されます。
DBA_HIST_DB_CACHE_ADVICE
には、各行に対応するキャッシュ・サイズの物理読取りの数の履歴予測が表示されます。
DBA_HIST_DISPATCHER
には、スナップショット時の各ディスパッチャ・プロセスの履歴情報が表示されます。
DBA_HIST_DYN_REMASTER_STATS
には、動的リマスタリング・プロセスに関する統計情報が表示されます。
DBA_HIST_IOSTAT_DETAIL
には、ファイル・タイプと機能別に集計された履歴I/O統計が表示されます。
DBA_HIST_SHARED_SERVER_SUMMARY
には、共有サーバー・アクティビティ、一般的なキュー、およびディスパッチャ・キューの履歴情報が表示されます。
DBA_HIST_SNAPSHOT
には、システム内のスナップショットの情報が表示されます。
DBA_HIST_SQL_PLAN
には、SQL実行計画が表示されます。
DBA_HIST_WR_CONTROL
には、AWR制御用の設定が表示されます。
関連項目: 動的および静的なデータ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
AWRレポートは、2つのスナップショット(または2つの時点)の間に取得されたデータを示します。AWRレポートは複数のセクションに分かれています。HTMLレポートには、セクション間ですばやくナビゲートできるようにリンクが組み込まれています。レポートの内容には、選択した範囲のスナップショットに関するシステムのワークロード・プロファイルが含まれます。
AWRレポートを生成するための主インタフェースは、Oracle Enterprise Managerです。可能なかぎり、AWRレポートは、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』の手順に従ってOracle Enterprise Managerで生成する必要があります。Oracle Enterprise Managerが使用できない場合、AWRレポートは、次の項の手順に従ってSQLスクリプトを実行することで生成します。
これらのスクリプトを実行するには、DBAロールが付与されている必要があります。
awrrpt.sql
SQLスクリプトでは、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。
AWRレポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: text
この例では、テキスト形式のレポートが選択されます。
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 150 Enter value for end_snap: 160
この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_1_150_160
この例では、デフォルト名が使用され、awrrpt_1_150_160
というAWRレポートが生成されます。
awrgrpt.sql
SQLスクリプトでは、現在のデータベース識別子およびOracle Real Application Clusters(Oracle RAC)環境のすべての使用可能なデータベース・インスタンスを使用して、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。
注意: HTMLのレポートは、テキストのレポートよりも読みやすいため、Oracle RAC環境では、テキストではなく、常にHTMLレポートの生成を試みてください。 |
Oracle RAC環境でAWRレポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrgrpt.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最終日に取得されたスナップショットが表示されます。
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 150 Enter value for end_snap: 160
この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_rac_150_160.html
この例では、デフォルト名が使用され、awrrpt_rac_150_160.html
というAWRレポートが生成されます。
awrrpti.sql
SQLスクリプトでは、特定のデータベースおよびインスタンスを使用して、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWRレポートの生成に使用されるデータベース識別子およびインスタンスを指定できます。
特定のデータベース・インスタンスのAWRレポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrrpti.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: text
この例では、テキスト形式のレポートが選択されます。
使用可能なデータベース識別子およびインスタンス番号のリストが表示されます。
Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 3309173529 1 MAIN main examp1690 3309173529 1 TINT251 tint251 samp251
次のようにデータベース識別子(dbid
)およびインスタンス番号(inst_num
)の値を入力します。
Enter value for dbid: 3309173529 Using 3309173529 for database Id Enter value for inst_num: 1
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 150 Enter value for end_snap: 160
この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_1_150_160
この例では、デフォルト名が使用され、3309173529
というデータベースIDを持つデータベース・インスタンスでawrrpt_1_150_160
というAWRレポートが生成されます。
awrgrpti.sql
SQLスクリプトでは、Oracle RAC環境で実行されている特定のデータベースおよびインスタンスを使用して、一定範囲のスナップショットIDの統計を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWRレポートの生成に使用されるデータベース識別子およびデータベース・インスタンスのカンマ区切りのリストを指定できます。
注意: HTMLのレポートは、テキストのレポートよりも読みやすいため、Oracle RAC環境では、テキストではなく、常にHTMLレポートの生成を試みてください。 |
Oracle RAC環境の特定のデータベース・インスタンスのAWRレポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrgrpti.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
使用可能なデータベース識別子およびインスタンス番号のリストが表示されます。
Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 3309173529 1 MAIN main examp1690 3309173529 1 TINT251 tint251 samp251 3309173529 2 TINT251 tint252 samp252
データベース識別子(dbid
)の値を入力します。
Enter value for dbid: 3309173529 Using 3309173529 for database Id
レポートに含めるOracle RACインスタンスのインスタンス番号(instance_numbers_or_all
)の値を入力します。
Enter value for instance_numbers_or_all: 1,2
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 150 Enter value for end_snap: 160
この例では、スナップショットIDが150のスナップショットが最初のスナップショットとして選択され、スナップショットIDが160のスナップショットが最後のスナップショットとして選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_rac_150_160.html
この例では、デフォルト名が使用され、3309173529
というデータベースIDを持つデータベース・インスタンスでawrrpt_rac_150_160.html
というAWRレポートが生成されます。
awrsqrpt.sql
SQLスクリプトでは、一定範囲のスナップショットIDに対する特定のSQL文の統計を表示する、HTMLまたはテキストのレポートが生成されます。SQL文のパフォーマンスを検査またはデバッグする場合にこのレポートを実行します。
特定のSQL文のAWRレポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 1
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 146 Enter value for end_snap: 147
この例では、スナップショットIDが146のスナップショットが最初のスナップショットとして選択され、スナップショットIDが147のスナップショットが最後のスナップショットとして選択されます。
特定のSQL文のSQL IDを指定して統計を表示します。
Enter value for sql_id: 2b064ybzkwf1y
この例では、2b064ybzkwf1y
というSQL IDを持つSQL文が選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_1_146_147.html
この例では、デフォルト名が使用され、awrrpt_1_146_147
というAWRレポートが生成されます。
awrsqrpi.sql
SQLスクリプトでは、特定のデータベースおよびインスタンスを使用して、スナップショットIDの範囲について特定のSQL文の統計を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWRレポートの生成対象となるデータベース識別子およびインスタンスを指定できます。このレポートは、特定のデータベースおよびインスタンスにおけるSQL文のパフォーマンスを調査またはデバッグする場合に実行します。
指定したデータベース・インスタンスで特定のSQL文のAWRレポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
使用可能なデータベース識別子およびインスタンス番号のリストが表示されます。
Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 3309173529 1 MAIN main examp1690 3309173529 1 TINT251 tint251 samp251
次のようにデータベース識別子(dbid
)およびインスタンス番号(inst_num
)の値を入力します。
Enter value for dbid: 3309173529 Using 3309173529 for database Id Enter value for inst_num: 1 Using 1 for instance number
スナップショットIDをリストする日数を指定します。
Enter value for num_days: 1
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。
ワークロード・リポジトリ・レポートの最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 146 Enter value for end_snap: 147
この例では、スナップショットIDが146のスナップショットが最初のスナップショットとして選択され、スナップショットIDが147のスナップショットが最後のスナップショットとして選択されます。
特定のSQL文のSQL IDを指定して統計を表示します。
Enter value for sql_id: 2b064ybzkwf1y
この例では、2b064ybzkwf1y
というSQL IDを持つSQL文が選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrrpt_1_146_147.html
この例では、デフォルト名が使用され、3309173529
というデータベースIDを持つデータベース・インスタンスでawrrpt_1_146_147
というAWRレポートが生成されます。
AWRレポートが2つのスナップショット(または2つの時点)間のAWRデータを示すのに対し、AWR期間比較レポートには2つの期間(または4つのスナップショットと同じ2つのAWRレポート)の相違点が示されます。AWR期間比較レポートを使用すると、2つの期間の間で異なる詳細なパフォーマンス属性と構成設定を明らかにできます。
たとえば、アプリケーションのワークロードが毎日午後10:00から午前0:00の間は安定していることがわかっており、ある木曜日の午後10:00から午後11:00のパフォーマンスが低い場合、木曜日の午後10:00から午後11:00と水曜日の午後10:00から午後11:00のAWR期間比較レポートを生成すると、これらの期間で相違のある構成設定、ワークロード・プロファイルおよび統計が特定されます。相違点に基づいて、パフォーマンス低下の原因を簡単に診断できます。AWR期間比較レポート用に選択する2つの期間は、時間の長さが異なってもかまいません。レポートでは、各期間中にデータベースで費やされた時間によって統計を正規化し、2つの期間の間の最大相違でソートされた統計データを提示するためです。
AWR期間比較レポートは複数のセクションに分かれています。HTMLレポートには、セクション間ですばやくナビゲートできるようにリンクが組み込まれています。レポートの内容には、選択した範囲のスナップショットに関するシステムのワークロード・プロファイルが含まれます。
AWR期間比較レポートを生成するための主インタフェースは、Oracle Enterprise Managerです。可能なかぎり、AWR期間比較レポートは、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』の手順に従ってOracle Enterprise Managerで生成する必要があります。Oracle Enterprise Managerが使用可能でない場合は、次の項の手順に従ってSQLスクリプトを実行して、AWR期間比較レポートを生成できます。
これらのスクリプトを実行するには、DBAロールが付与されている必要があります。
awrddrpt.sql
SQLスクリプトでは、選択された2つの期間の詳細なパフォーマンス属性および構成設定を比較する、HTMLまたはテキストのレポートが生成されます。
AWR期間比較レポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrddrpt.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
第1期間のスナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
第1期間の最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 102 Enter value for end_snap: 103
この例では、第1期間において、スナップショットIDが102のスナップショットが最初のスナップショットとして選択され、スナップショットIDが103のスナップショットが最後のスナップショットとして選択されます。
第2期間のスナップショットIDをリストする日数を指定します。
Enter value for num_days2: 1
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。
第2期間の最初と最後のスナップショットIDを指定します。
Enter value for begin_snap2: 126 Enter value for end_snap2: 127
この例では、第2期間において、スナップショットIDが126のスナップショットが最初のスナップショットとして選択され、スナップショットIDが127のスナップショットが最後のスナップショットとして選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrdiff_1_102_1_126.txt
この例では、デフォルト名が使用され、awrdiff_1_102_126
というAWRレポートが生成されます。
awrgdrpt.sql
SQLスクリプトでは、現在のデータベース識別子およびOracle RAC環境のすべての使用可能なデータベース・インスタンスを使用して、選択された2つの期間の詳細なパフォーマンス属性および構成設定を比較する、HTMLまたはテキストのレポートが生成されます。
注意: HTMLのレポートは、テキストのレポートよりも読みやすいため、Oracle RAC環境では、テキストではなく、常にHTMLレポートの生成を試みてください。 |
Oracle RAC環境でAWR期間比較レポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
第1期間のスナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
第1期間の最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 102 Enter value for end_snap: 103
この例では、第1期間において、スナップショットIDが102のスナップショットが最初のスナップショットとして選択され、スナップショットIDが103のスナップショットが最後のスナップショットとして選択されます。
第2期間のスナップショットIDをリストする日数を指定します。
Enter value for num_days2: 1
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。
第2期間の最初と最後のスナップショットIDを指定します。
Enter value for begin_snap2: 126 Enter value for end_snap2: 127
この例では、第2期間において、スナップショットIDが126のスナップショットが最初のスナップショットとして選択され、スナップショットIDが127のスナップショットが最後のスナップショットとして選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrracdiff_1st_1_2nd_1.html
この例では、デフォルト名が使用され、awrrac_1st_1_2nd_1.html
というAWRレポートが生成されます。
awrddrpi.sql
SQLスクリプトでは、特定のデータベースおよびインスタンスにおける選択された2つの期間の詳細なパフォーマンス属性および構成設定を比較する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWR期間比較レポートの生成に使用されるデータベース識別子およびインスタンスを指定できます。
指定したデータベース・インスタンスでAWR期間比較レポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrddrpi.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: text
この例では、テキスト形式のレポートが選択されます。
使用可能なデータベース識別子およびインスタンス番号のリストが表示されます。
Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 3309173529 1 MAIN main examp1690 3309173529 1 TINT251 tint251 samp251
次のように、第1期間に対するデータベース識別子(dbid
)およびインスタンス番号(inst_num
)の値を入力します。
Enter value for dbid: 3309173529 Using 3309173529 for Database Id for the first pair of snapshots Enter value for inst_num: 1 Using 1 for Instance Number for the first pair of snapshots
第1期間のスナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
第1期間の最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 102 Enter value for end_snap: 103
この例では、第1期間において、スナップショットIDが102のスナップショットが最初のスナップショットとして選択され、スナップショットIDが103のスナップショットが最後のスナップショットとして選択されます。
次のように、第2期間に対するデータベース識別子(dbid
)およびインスタンス番号(inst_num
)の値を入力します。
Enter value for dbid2: 3309173529 Using 3309173529 for Database Id for the second pair of snapshots Enter value for inst_num2: 1 Using 1 for Instance Number for the second pair of snapshots
第2期間のスナップショットIDをリストする日数を指定します。
Enter value for num_days2: 1
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。
第2期間の最初と最後のスナップショットIDを指定します。
Enter value for begin_snap2: 126 Enter value for end_snap2: 127
この例では、第2期間において、スナップショットIDが126のスナップショットが最初のスナップショットとして選択され、スナップショットIDが127のスナップショットが最後のスナップショットとして選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrdiff_1_102_1_126.txt
この例では、デフォルト名が使用され、3309173529
というデータベースIDを持つデータベース・インスタンスでawrdiff_1_102_126
というAWRレポートが生成されます。
awrgdrpi.sql
SQLスクリプトでは、Oracle RAC環境の特定のデータベースおよびインスタンスを使用して、選択された2つの期間の詳細なパフォーマンス属性および構成設定を比較する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、AWR期間比較レポートの生成に使用されるデータベース識別子およびデータベース・インスタンスのカンマ区切りのリストを指定できます。
注意: HTMLのレポートは、テキストのレポートよりも読みやすいため、Oracle RAC環境では、テキストではなく、常にHTMLレポートの生成を試みてください。 |
Oracle RAC環境の特定のデータベース・インスタンスのAWR期間比較レポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/awrgdrpi.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
使用可能なデータベース識別子およびインスタンス番号のリストが表示されます。
Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 3309173529 1 MAIN main examp1690 3309173529 1 TINT251 tint251 samp251 3309173529 2 TINT251 tint252 samp252 3309173529 3 TINT251 tint253 samp253 3309173529 4 TINT251 tint254 samp254
次のように、第1期間のデータベース識別子(dbid
)およびインスタンス番号(instance_numbers_or_all
)の値を入力します。
Enter value for dbid: 3309173529 Using 3309173529 for Database Id for the first pair of snapshots Enter value for inst_num: 1,2 Using instances 1 for the first pair of snapshots
第1期間のスナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、最近2日間に取得されたスナップショットが表示されます。
第1期間の最初と最後のスナップショットIDを指定します。
Enter value for begin_snap: 102 Enter value for end_snap: 103
この例では、第1期間において、スナップショットIDが102のスナップショットが最初のスナップショットとして選択され、スナップショットIDが103のスナップショットが最後のスナップショットとして選択されます。
使用可能なデータベース識別子およびインスタンス番号のリストが表示されます。
Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 3309173529 1 MAIN main examp1690 3309173529 1 TINT251 tint251 samp251 3309173529 2 TINT251 tint252 samp252 3309173529 3 TINT251 tint253 samp253 3309173529 4 TINT251 tint254 samp254 INSTNUM1 ----------------------------------------------------- 1,2
次のように、第2期間のデータベース識別子(dbid2
)およびインスタンス番号(instance_numbers_or_all2
)の値を入力します。
Enter value for dbid2: 3309173529 Using 3309173529 for Database Id for the second pair of snapshots Enter value for instance_numbers_or_all2: 3,4
第2期間のスナップショットIDをリストする日数を指定します。
Enter value for num_days2: 1
指定した時間範囲に対応する既存のスナップショットのリストが表示されます。この例では、前日に取得されたスナップショットが表示されます。
第2期間の最初と最後のスナップショットIDを指定します。
Enter value for begin_snap2: 126 Enter value for end_snap2: 127
この例では、第2期間において、スナップショットIDが126のスナップショットが最初のスナップショットとして選択され、スナップショットIDが127のスナップショットが最後のスナップショットとして選択されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name awrracdiff_1st_1_2nd_1.html
この例では、デフォルト名が使用され、awrrac_1st_1_2nd_1.html
というAWRレポートが生成されます。
アクティブ・セッション履歴(ASH)レポートを使用して次の分析を実行します。
通常数分間で収まる一時的なパフォーマンスの問題
時間、セッション、モジュール、アクションまたはSQL_ID
など、様々なディメンションあるいはその組合せによる有効範囲内または目標となるパフォーマンスの分析
一時的なパフォーマンスの問題は、短期的なものであり、自動データベース診断モニター(ADDM)による分析には表れません。ADDMでは、DB時間への影響の観点から、分析期間中に最も重要なパフォーマンス上の問題をレポートしようと試みます。特定の問題の継続期間がごく短い場合、その重大度は、分析期間にわたり平均化されるか、他のパフォーマンス問題によって最小化されることがあります。したがって、その問題はADDMでは検出されない可能性があります。パフォーマンス問題がADDMで取得されるかどうかは、AWRのスナップショット間隔と問題の継続期間の比較によって決まります。
スナップショット間で相当な時間続くパフォーマンスの問題の場合、ADDMにより取得されます。たとえば、スナップショット間隔が1時間に設定されている場合、30分間続くパフォーマンスの問題は一時的なパフォーマンスの問題としては考慮されません。これはこの期間がスナップショット間隔で相当な時間を占め、ADDMにより取得される可能性が高いためです。
しかし、継続期間が2分間のみのパフォーマンス問題は、その期間がスナップショット間隔と比べてわずかであるため、一時的なパフォーマンス問題となり、通常はADDMによって検出されません。たとえば、午後10:00から午後10:10の間にシステムの処理が低下したという連絡がユーザーからあったにもかかわらず、午後10:00から午後11:00の時間間隔におけるADDM分析にパフォーマンス上の問題が見られない場合、ユーザーにより報告された10分というごく短い期間に一時的なパフォーマンス問題が発生した可能性があります。
ASHレポートは複数のセクションに分かれています。HTMLレポートには、セクション間ですばやくナビゲートできるようにリンクが組み込まれています。レポートの内容には、指定された期間の、ブロッカIDおよび待機中IDとその関連トランザクション識別子、およびSQLの識別に使用されたASH情報が含まれています。ASHの詳細は、「アクティブ・セッション履歴」を参照してください。
ASHレポートを生成するための主インタフェースは、Oracle Enterprise Managerです。可能なかぎり、ASHレポートは、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』の手順に従ってOracle Enterprise Managerで生成する必要があります。Oracle Enterprise Managerが使用可能でない場合は、次の項の手順に従ってSQLスクリプトを実行して、ASHレポートを生成できます。
ashrpt.sql
SQLスクリプトでは、指定された期間のASH情報を表示する、HTMLまたはテキストのレポートが生成されます。
ASHレポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/ashrpt.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: text
この例では、テキスト形式のレポートが選択されます。
システム日付より前の開始時間を分単位で指定します。
Enter value for begin_time: -10
この例では、現在の時刻より10分前が選択されます。
開始時間からASH情報を収集するレポートの期間を分単位で入力します。
Enter value for duration:
この例では、システム日付から開始時間をマイナスしたデフォルトの期間が使用されます。
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name ashrpt_1_0310_0131.txt
この例では、デフォルト名が使用され、ashrpt_1_0310_0131
というASHレポートが生成されます。このレポートでは、現在の時刻の10分前から開始され、現在の時刻で終了するASH情報が収集されます。
ashrpti.sql
SQLスクリプトでは、指定されたデータベースおよびインスタンスの指定された期間のASH情報を表示する、HTMLまたはテキストのレポートが生成されます。このスクリプトでは、ASH情報を収集する時間枠を設定する前に、データベースおよびインスタンスを指定できます。
指定したデータベース・インスタンスでASHレポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/ashrpti.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
使用可能なデータベースIDおよびインスタンス番号のリストが表示されます。
Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 3309173529 1 MAIN main examp1690 3309173529 1 TINT251 tint251 samp251
次のようにデータベース識別子(dbid
)およびインスタンス番号(inst_num
)の値を入力します。
Enter value for dbid: 3309173529 Using 3309173529 for database id Enter value for inst_num: 1
この手順は、Active Data Guardフィジカル・スタンバイ・インスタンスのASHレポートを生成する場合にのみ該当します。そうでない場合は、この手順をスキップできます。
フィジカル・スタンバイ・インスタンスのASHレポートを生成するには、スタンバイ・データベースを読取り専用でオープンする必要があります。ディスク上のASHデータはプライマリ・データベースでのアクティビティを表し、メモリー内のASHデータはスタンバイ・データベースでのアクティビティを表します。
レポートの生成に、プライマリ・データベースまたはスタンバイ・データベースのどちらのサンプリング・データを使用するかを指定します。
You are running ASH report on a Standby database. To generate the report over data sampled on the Primary database, enter 'P'. Defaults to 'S' - data sampled in the Standby database. Enter value for stdbyflag: Using Primary (P) or Standby (S): S
この例では、デフォルト値のスタンバイ(S)が選択されています。
システム日付より前の開始時間を分単位で指定します。
Enter value for begin_time: -10
この例では、現在の時刻より10分前が選択されます。
開始時間からASH情報を収集するレポートの期間を分単位で入力します。
Enter value for duration:
この例では、システム日付から開始時間をマイナスしたデフォルトの期間が使用されます。
レポートの「アクティビティの経過(Activity Over Time)」セクションで使用する時間帯(秒数)を指定します。
Enter value for slot_width:
この例では、デフォルト値を使用します。「アクティビティの経過(Activity Over Time)」セクションおよび時間帯の指定方法の詳細は、「アクティビティの経過(Activity Over Time)」を参照してください。
その後のプロンプトの説明に従って、次のレポート・ターゲットの値を入力します。
target_session_id
target_sql_id
target_wait_class
target_service_hash
target_module_name
target_action_name
target_client_id
target_plsql_entry
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name ashrpt_1_0310_0131.txt
この例では、デフォルト名が使用され、ashrpt_1_0310_0131
というASHレポートが生成されます。このレポートでは、3309173529
というデータベースIDを持つデータベース・インスタンスにおいて、現在の時刻の10分前から開始され、現在の時刻で終了するASH情報が収集されます。
ashrpti.sql
SQLスクリプトは、Oracle RAC環境の指定されたデータベースおよびインスタンスにおける指定された期間のASH情報を表示する、HTMLまたはテキストのレポートを生成します。ディスクに書き込まれるASHデータのみがレポートの生成に使用されます。このレポートでは、DBA_HIST_ACTIVE_SESS_HISTORY
表にある最後の10分間でのASHサンプルのみが使用されます。
Oracle RAC環境でASHレポートを生成するには、次の手順を実行します。
SQLプロンプトで、次のように入力します。
@$ORACLE_HOME/rdbms/admin/ashrpti.sql
レポートの形式としてHTMLまたはテキストのいずれかを指定します。
Enter value for report_type: html
この例では、HTML形式のレポートが選択されます。
使用可能なデータベースIDおよびインスタンス番号のリストが表示されます。
Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 3309173529 1 MAIN main examp1690 3309173529 1 TINT251 tint251 samp251 3309173529 2 TINT251 tint252 samp252 3309173529 3 TINT251 tint253 samp253 3309173529 4 TINT251 tint254 samp254
次のようにデータベース識別子(dbid
)およびインスタンス番号(inst_num
)の値を入力します。
Enter value for dbid: 3309173529 Using database id: 3309173529 Enter instance numbers. Enter 'ALL' for all instances in an Oracle RAC cluster or explicitly specify list of instances (e.g., 1,2,3). Defaults to current instance. Enter value for inst_num: ALL Using instance number(s): ALL
システム日付より前の開始時間を分単位で指定します。
Enter value for begin_time: -1:10
この例では、現在の時刻より1時間10分前が選択されます。
開始時間からASH情報を収集するレポートの期間を分単位で入力します。
Enter value for duration: 10
この例では、期間は10分間に設定されます。
レポートの「アクティビティの経過(Activity Over Time)」セクションで使用する時間帯(秒数)を指定します。
Enter value for slot_width:
この例では、デフォルト値を使用します。「アクティビティの経過(Activity Over Time)」セクションおよび時間帯の指定方法の詳細は、「アクティビティの経過(Activity Over Time)」を参照してください。
その後のプロンプトの説明に従って、次のレポート・ターゲットの値を入力します。
target_session_id
target_sql_id
target_wait_class
target_service_hash
target_module_name
target_action_name
target_client_id
target_plsql_entry
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: Using the report name ashrpt_rac_0310_0131.txt
この例では、デフォルト名が使用され、ashrpt_rac_0310_0131
というASHレポートが生成されます。このレポートでは、3309173529
というデータベースIDを持つデータベースに所属するすべてのインスタンスにおいて、現在の時刻の1時間10分前から開始され、現在の時刻の1時間前に終了するASH情報が収集されます。
ASHレポートを生成したら、その内容を確認して一時的なパフォーマンス問題を特定できます。
ASHレポートの内容は、次のセクションに分けられます。
関連項目: Oracle Real Application Clusters(Oracle RAC)に固有のASHレポートのセクションの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。 |
「上位イベント(Top Events)」セクションは、ユーザー、バックグラウンドおよび優先順位で分類されたサンプル・セッション・アクティビティの上位待機イベントを示します。このセクションの情報を使用して、一時的なパフォーマンス問題の原因となっている可能性のある待機イベントを特定します。
「上位イベント(Top Events)」セクションには、次のサブセクションが含まれます。
上位ユーザー・イベント(Top User Events)
このサブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるユーザー・プロセスの上位待機イベントを示します。
上位バックグラウンド・イベント(Top Background Events)
このサブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるバックグランドの上位待機イベントを示します。
上位イベントP1/P2/P3(Top Event P1/P2/P3)
このサブセクションは、サンプル・セッション・アクティビティで最高の割合を占める上位待機イベントの待機イベント・パラメータ値を、合計待機時間の割合(%イベント(% Event))の順に示します。各待機イベントにおいて、「P1値、P2値、P3値(P1 Value, P2 Value, P3 Value)」列の値は、「パラメータ1(Parameter 1)」、「パラメータ2(Parameter 2)」、「パラメータ3(Parameter 3)」の各列に表示される待機イベント・パラメータに対応します。
「ロード・プロファイル(Load Profile)」セクションは、サンプル・セッション・アクティビティで分析された負荷を示します。このセクションの情報を使用して、一時的なパフォーマンス問題の原因となっている可能性のあるサービス、クライアントまたはSQLコマンド・タイプを特定します。
「ロード・プロファイル(Load Profile)」セクションには、次のサブセクションが含まれます。
上位サービス/モジュール(Top Service/Modules)
このサブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるサービスおよびモジュールを示します。
上位クライアントID(Top Client IDs)
このサブセクションは、データベース・セッションのアプリケーション固有の識別子であるクライアントIDに基づいて、サンプル・セッション・アクティビティで最高の割合を占めるクライアントを示します。
上位SQLコマンド・タイプ(Top SQL Command Types)
このサブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるSQLコマンド・タイプ(SELET
、UPDATE
など)を示します。
上位実行フェーズ(Top Phases of Execution)
このサブセクションは、サンプル・セッション・アクティビティで最高の割合を占める実行フェーズ(SQL、PL/SQL、Javaのコンパイルや実行など)を示します。
「上位SQL(Top SQL)」セクションは、サンプル・セッション・アクティビティの上位SQL文を示します。この情報を使用して、一時的なパフォーマンス問題の原因となっている可能性のある高負荷のSQL文を特定します。
「上位SQL(Top SQL)」セクションには、次のサブセクションが含まれます。
「上位SQLと上位イベント(Top SQL with Top Events)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるSQL文と、それらのSQL文に対して発生した上位待機イベントを示します。「実行のサンプル数(Sampled # of Executions)」列は、特定のSQL文の個別実行がサンプリングされた数を示します。
「上位SQLと上位行ソース(Top SQL with Top Row Sources)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるSQL文と、それらの詳細な実行計画情報を示します。この情報を使用することで、SQLの経過時間に多くの影響を与えているSQL実行部分を特定できます。
「リテラルを使用する上位SQL(Top SQL Using Literals)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるリテラルを使用するSQL文を示します。このレポートにリストされた文を確認して、リテラルをバインド変数に置換できるかどうかを決定する必要があります。
「上位解析モジュール/アクション(Top Parsing Module/Action)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるSQL文解析時のモジュールおよびアクションを示します。
「SQLテキストの完全なリスト(Complete List of SQL Text)」サブセクションは、このセクションに含まれる上位SQL文のテキスト全体を示します。
「上位PL/SQL(Top PL/SQL)」セクションは、サンプル・セッション・アクティビティで最高の割合を占めるPL/SQLプロシージャを示します。「PL/SQLエントリ・サブプログラム(PL/SQL Entry Subprogram)」列は、PL/SQLに対するアプリケーションの最上位レベルのエントリ・ポイントを示します。「PL/SQL現行サブプログラム(PL/SQL Current Subprogram)」列は、サンプリング時点で実行されていたPL/SQLサブプログラムを示します。この列の値がSQL
の場合、「%現行(% Current)」列に、このサブプログラムのSQL実行にかかった時間の割合が示されます。
「上位セッション(Top Sessions)」セクションは、特定の待機イベントを待機していたセッションを示します。この情報を使用して、一時的なパフォーマンス問題の原因となっている可能性のある、サンプル・セッション・アクティビティで最高の割合を占めるセッションを特定します。
「上位セッション(Top Sessions)」セクションには、次のサブセクションが含まれます。
「上位セッション(Top Sessions)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占める特定の待機イベントを待機していたセッションを示します。
「上位のブロック・セッション(Top Blocking Sessions)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるブロック・セッションを示します。
「PQを実行している上位セッション(Top Sessions Running PQs)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占める、特定の待機イベントを待機していたパラレル問合せ(PQ)を実行中のセッションを示します。
「上位オブジェクト/ファイル/ラッチ(Top Objects/Files/Latches)」セクションは、最もよく使用されるデータベース・リソースに関する追加情報を示し、次のサブセクションを含みます。
「上位DBオブジェクト(Top DB Objects)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるデータベース・オブジェクト(表や索引など)を示します。
「上位DBファイル(Top DB Files)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるデータベース・ファイルを示します。
「上位ラッチ(Top Latches)」サブセクションは、サンプル・セッション・アクティビティで最高の割合を占めるラッチを示します。
ラッチは、システム・グローバル領域(SGA)で共有されているデータ構造を保護するための簡素な下位レベルのシリアライズ・メカニズムです。たとえば、ラッチにより、データベースに現在アクセスしているユーザーのリストと、バッファ・キャッシュのブロックを記述するデータ構造が保護されます。サーバーまたはバックグラウンド・プロセスは、これらの構造の操作または調査時に、ごく短時間ラッチを取得します。ラッチの実装は、特に、プロセスがラッチを待機するかどうかとその待機時間に関して、オペレーティング・システムに依存します。
「アクティビティの経過(Activity Over Time)」セクションは、ASHレポートの中で最も有益な情報の含まれるセクションの1つです。このセクションは、分析期間中のアクティビティおよびワークロード・プロファイルに関する詳細な情報を含むため、期間が長い場合に特に役立ちます。「アクティビティの経過(Activity Over Time)」セクションは、10個の時間帯に分けられます。各時間帯のサイズは、分析期間の継続時間に基づいて変化します。通常、最初と最後の時間帯は、余り部分になります。その内側の時間帯は、すべて同じサイズで、相互に比較できます。たとえば、分析期間が10分間続くと、すべての時間帯がそれぞれ1分となります。ただし、分析期間が9分30秒続くと、両端の時間帯はそれぞれ15秒となり、内側の時間帯はそれぞれ1分となります。
表5-2に示すとおり、各時間帯にはその特定の時間帯に関する情報が含まれます。
表5-2 アクティビティの経過(Activity Over Time)
列 | 説明 |
---|---|
時間帯(期間)(Slot Time (Duration)) |
時間帯の継続時間 |
時間帯の数(Slot Count) |
時間帯のサンプル・セッションの数 |
イベント(Event) |
時間帯の上位3つの待機イベント |
イベント数(Event Count) |
待機イベントを待機しているASHサンプルの数 |
%イベント(% Event) |
分析期間全体で待機イベントを待機しているASHサンプルの割合 |
内側の時間帯を比較する場合、「イベント数(Event Count)」列と「時間帯の数(Slot Count)」列のスパイクを識別して、スキュー解析を実行します。「イベント数(Event Count)」列のスパイクは、特定のイベントを待機しているサンプル・セッションの数の増大を示します。「時間帯の数(Slot Count)」列のスパイクは、アクティブ・セッションの増大(ASHデータはアクティブ・セッションからのみサンプリングされるため)と、データベース・ワークロードの相対的な増大を示します。一般的に、アクティブ・セッション・サンプルの数と、待機イベントに関連するセッションの数が増大している場合、その時間帯が一時的なパフォーマンス問題の原因である可能性があります。
ユーザー定義の時間帯サイズでASHレポートを生成するには、「特定のデータベース・インスタンスのASHレポートの生成」の手順に従ってashrpti.sql
スクリプトを実行します。