この章では、Oracle Databaseのデータベース統計を収集する方法を説明しており、内容は次のとおりです。
Oracle Databaseは、すべてのレベル(セッション・レベルを除く)でほとんどの統計の累積値とデルタ値を、自動ワークロード・リポジトリ(AWR)に自動的に存続させます。このプロセスは通常の期間に繰り返され、結果はAWRスナップショットに取得されます。スナップショットで取得したデルタ値は、時間ごとの各統計に対する変更を示します。
統計的ベースラインは、通常、システムが最適なレベルで正常に動作している期間中に取得された統計的割合の集合です。ベースラインで取得された統計を、パフォーマンスが低下している期間に取得された統計と比較してパフォーマンスの問題を診断するには、統計的ベースラインを使用します。これにより、大幅に値が大きくなっていて問題の原因だと思われる特定の統計を識別できます。AWRは、AWRスナップショットのペアまたは範囲をベースラインとして指定して保存できるようにすることで、ベースライン・データの取得をサポートします。
一般的にメトリックは、累積的な統計における変化の割合です。この割合は、時間、トランザクション、データベース・コールなど、様々な単位に対して測定できます。たとえば、1秒当たりのデータベース・コールの数はメトリックです。メトリック値は、一部のV$
ビューに表示され、このビューに表示される値は、きわめて短い時間間隔(通常は60秒)での平均値です。最新のメトリック値の履歴は、V$
ビューを介して使用でき、データの一部はAWRスナップショットでも存続されます。
次の各項では、より効果的なデータベース統計の収集を可能にするOracle Databaseの様々な機能について説明します。
注意:
この章で説明されているAWR機能を使用するには、Oracle Diagnostic Packのライセンスが必要です。
注意:
プラガブル・データベース(PDB)とともにAWR機能を使用している場合には、データ可視性および権限の要件が異なります。AWR機能を含む管理性の機能がマルチテナント・コンテナ・データベース(CDB)で機能する仕組みの詳細は、『Oracle Database管理者ガイド』を参照してください。
AWRは、問題の検出および自己チューニングを目的として、パフォーマンス統計を収集、処理およびメンテナンスします。この収集されたデータは、メモリーとデータベースの両方に格納され、レポートおよびビューに表示されます。
データベース・セグメントのアクセス統計と使用統計を決定するオブジェクト統計。
アクティビティの時間使用に基づく時間モデル統計。V$SYS_TIME_MODEL
およびV$SESS_TIME_MODEL
ビューに表示されます。
V$SYSSTAT
およびV$SESSTAT
ビューで収集されるシステム統計とセッション統計の一部。
システム上で最大負荷を生成しているSQL文。経過時間やCPUタイムなどの基準に基づきます。
アクティブ・セッション履歴(ASH)統計は、最新のセッション・アクティビティの履歴を表します
関連項目:
様々なタイプのデータベース統計の詳細は、「データベース統計について」を参照してください
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください
スナップショットは、自動データベース診断モニター(ADDM)によりパフォーマンスの比較に使用される、特定の期間の履歴データのセットです。デフォルトでは、1時間ごとにパフォーマンス・データのスナップショットが自動的に生成され、その統計はAWRに8日間保存されます。スナップショットの作成や、スナップショット保存期間の変更を手動で行うこともできますが、通常は必要ありません。
AWRは、スナップショット間の違いを比較し、システム負荷への影響に基づいて収集するSQL文を判別します。これにより、期間中に収集する必要のあるSQL文の数が減少します。スナップショットが作成されると、スナップショットに取得されたデータがADDMにより分析され、パフォーマンス分析が実行されます。
関連項目:
スナップショットの管理の詳細は、「スナップショットの管理」を参照してください
ベースラインは、パフォーマンス上の問題が発生したときに、他のスナップショットと比較するために保持されている特定期間のスナップショットのセットです。ベースラインに含まれるスナップショットはAWRの自動消去プロセスから除外され、無期限に保持されます。
使用可能なベースラインには、次の複数のタイプがあります。
固定ベースラインは、過去の指定時における、固定した連続的な期間に対応します。ベースラインは最適なレベルでのシステム動作を表す必要があるため、固定ベースラインを作成する前に、ベースラインとして選択する期間を慎重に検討してください。将来的に、このベースラインを、パフォーマンスの低下期間中に取得された別のベースラインまたはスナップショットと比較して、時間経過に沿ってパフォーマンスの低下を分析できます。
関連項目:
固定ベースラインの管理の詳細は、「ベースラインの管理」を参照してください
変動ウィンドウ・ベースラインは、AWRの保存期間内に存在するすべてのAWRデータに対応します。これは、AWRの全保存期間におけるAWRデータを使用してメトリックしきい値を計算できるため、適応しきい値を使用する際に役立ちます。
Oracle Databaseでは、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。システム定義による変動ウィンドウ・ベースラインのデフォルトのウィンドウ・サイズは、現在のAWR保存期間であり、デフォルトでは8日です。適応しきい値を使用する予定の場合は、しきい値を正確に計算するため、より長い変動ウィンドウ(30日など)を使用することを検討してください。変動ウィンドウ・ベースラインのサイズを変更するには、変動ウィンドウの日数を、AWR保存期間の日数以下の値に変更します。したがって、変動ウィンドウのサイズを拡張するには、先にAWR保存期間を適切に拡張しておく必要があります。
関連項目:
変動ウィンドウ・ベースラインのサイズ変更の詳細は、「デフォルトの変動ウィンドウ・ベースラインのサイズ変更」を参照してください
ベースライン・テンプレートを使用すると、将来の連続的な期間におけるベースラインを作成できます。ベースライン・テンプレートには、次の2つのタイプがあります。
関連項目:
ベースライン・テンプレートの管理の詳細は、「ベースライン・テンプレートの管理」を参照してください
単一ベースライン・テンプレートを使用すると、将来の単一の連続的な期間におけるベースラインを作成できます。これは、将来に取得する期間が前もってわかっている場合に便利です。たとえば、次の週末にスケジュールされているシステム・テストの最中にAWRデータを取得することが可能です。この場合、単一ベースライン・テンプレートを作成することで、テストが実行されたときに自動的にその期間を取得できます。
AWRによって使用される領域は、次のように複数の要因によって決まります。
任意の時点におけるデータベースのアクティブ・セッション数
スナップショット間隔
スナップショット間隔により、スナップショットの収集頻度が決定されます。スナップショット間隔が短いほど頻度が高くなり、AWRにより収集されるデータ量が増大します。
履歴データの保存期間
保存期間により、このデータが消去前に保持されている期間が決定されます。保存期間が長いほど、AWRによって消費される領域が増加します。
デフォルトでは、Oracle Databaseにより、1時間に1回スナップショットが取得され、データベースに8日間保持されます。これらのデフォルト設定では、同時アクティブ・セッション数が平均10の標準的なシステムの場合、AWRデータ用に約200から300MBの領域が必要になる可能性があります。
AWRの領域消費量を減らすには、スナップショット間隔を長くして保存期間を短縮します。保存期間を短縮する場合は、Oracle Databaseの複数の自己管理機能が正常に機能するためにAWRデータに依存することに注意してください。十分なデータがないと、次のようなコンポーネントと機能の妥当性および正確さに影響する可能性があります。
自動データベース診断モニター(ADDM)
SQLチューニング・アドバイザ
UNDOアドバイザ
セグメント・アドバイザ
可能な場合は、少なくとも1つのワークロード・サイクル全体で収集できるように、AWR保存期間を十分な長さに設定することをお薦めします。システムのワークロード・サイクルが平日にOLTPワークロード、週末にバッチ・ジョブというような週単位になっている場合、デフォルトのAWR保存期間である8日を変更する必要はありません。ただし、月末の帳簿締め処理時にシステムの月次ピーク負荷が発生する場合は、保存期間を1か月に設定する操作が必要になることがあります。
例外的な状況では、スナップショット間隔を0に設定して、自動スナップショット収集を無効にすることができます。この場合、ワークロードおよび統計データの自動収集は停止され、Oracle Databaseの自己管理機能の大部分が動作しなくなります。また、スナップショットを手動で作成することもできません。このため、自動スナップショット収集を無効にしないことをお薦めします。
関連項目:
スナップショット間隔および保存期間のデフォルト値を変更する方法の詳細は、「スナップショット設定の変更」を参照してください
適応しきい値を使用すると、管理オーバーヘッドを最小限に抑えながら、パフォーマンスの問題を監視および検出できます。適応しきい値は、変動ウィンドウ・ベースラインで取得されるメトリック値から導出された統計を使用して、システム・メトリックの警告しきい値とクリティカル・アラートしきい値を自動的に設定します。これらのしきい値の統計は週に1回再計算され、時間の経過とともに変化するシステムのパフォーマンスに応じて新しいしきい値になります。また、適応しきい値では、定期的なワークロードのパターンに基づいて1日または週の異なる時間帯の様々なしきい値を計算できます。
たとえば、多くのデータベースでは、日中のオンライン・トランザクション処理(OLTP)と夜間のバッチ処理をサポートしています。トランザクションごとのレスポンス時間のパフォーマンス・メトリックは、日中のOLTPパフォーマンスの低下の検出に役立ちます。ただし、有用なOLTPのしきい値は、長時間実行トランザクションが一般的なバッチ・ワークロードに対しては、通常は低すぎます。そのため、OLTPに適切なしきい値では、バッチ処理時に不適切なパフォーマンス・アラートが頻繁にトリガーされることがあります。適応しきい値は、このようなワークロードのパターンを検出し、日中や夜間用の様々なしきい値を自動的に設定できます。
適応しきい値には、次の2種類があります。
最大パーセントのしきい値は、変動ウィンドウ・ベースライン内のデータに関して観察された最大値の割合の倍数として計算されます。
最大パーセントのしきい値は、システムをピーク・ワークロードに対応するようサイジングし、現在のワークロード・ボリュームが以前の高い値に近づいているか、その値を超えているときにアラートを生成する必要がある場合に特に役立ちます。未知だが明確な制限値を持つメトリックは、このような設定の第一候補になります。たとえば、1秒当たりの生成REDOのメトリックは、通常、最大パーセントのしきい値に対する適切な候補になります。
重大レベルのしきい値は、変動ウィンドウ・ベースライン内のデータに基づくしきい値を超える値が観察されることがどの程度異常かを表す統計の百分位数に設定されます。
重大レベルのしきい値は、システムが正常に機能しているときに統計的に安定した動作を示すメトリックでは非常に役立ちますが、パフォーマンスが低下している場合は大きく変化する可能性があります。たとえば、トランザクションごとのレスポンス時間のメトリックは、適切に調整されたOLTPシステムの場合は安定していますが、パフォーマンスの問題が発生する場合は広い範囲で変動する可能性があります。重大レベルのしきい値は、異常なメトリックの値と異常なシステムのパフォーマンスの両方が発生する場合にアラートを生成することを意図しています。
重大レベルのしきい値は、次のいずれかのレベルに設定できます。
高(.95)
100の観測のうち5つのみがこの値を超えると予測されます。
非常に高い(.99)
100の観測のうち1つのみがこの値を超えると予測されます。
重大(.999)
1,000の観測のうち1つのみがこの値を超えると予測されます。
極度(.9999)
10,000の観測のうち1つのみがこの値を超えると予測されます。
重大レベルのしきい値を指定した場合、Oracle Databaseでは内部計算を実行してしきい値を設定します。ベースラインのデータを使用してより重大度のレベルが高いしきい値を設定できず、重大レベルのしきい値が設定されない場合があります。
重大(.999)または極度(.9999)の重大レベルのしきい値を指定し、予測どおりにアラートを受信しない場合、このしきい値を非常に高い(.99)や高(.95)などの低い値に設定できます。または、最大パーセントのしきい値をかわりに使用することを検討してください。しきい値を変更して、受信するアラートが多すぎることがわかった場合は、アラートがトリガーされる状況の発生回数を増やしてください。
注意:
ベースライン・メトリックを管理するための主インタフェースは、Oracle Enterprise Managerです。ベースライン・メトリックの適応しきい値を作成するには、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』の説明に従ってOracle Enterprise Managerを使用します。
関連項目:
変動ウィンドウ・ベースラインの詳細は、「変動ウィンドウ・ベースライン」を参照してください
ベースライン・メトリックの管理の詳細は、「ベースラインの管理」を参照してください
AWRによる統計収集を有効化する手順は次のとおりです。
STATISTICS_LEVEL
パラメータをTYPICAL
またはALL
に設定します。
このパラメータのデフォルト設定はTYPICAL
です。
STATISTICS_LEVEL
をBASIC
に設定すると、AWRを含む多くのOracle Databaseの機能が無効になるため、この設定はお薦めしません。STATISTICS_LEVEL
をBASIC
に設定しても、DBMS_WORKLOAD_REPOSITORY
パッケージを使用すればAWR統計を手動で取得できます。ただし、セグメント統計やメモリー・アドバイザ情報など、多くのシステム統計のインメモリー収集が無効になるため、これらのスナップショットで取得された統計は不完全になる可能性があります。
関連項目:
STATISTICS_LEVEL
初期化パラメータについては、『Oracle Databaseリファレンス』を参照してください。
デフォルトでは、1時間ごとにスナップショットが生成され、その統計はワークロード・リポジトリに8日間保存されます。必要な場合には、スナップショットを手動で作成または削除し、スナップショット設定を変更できます。
この項では、スナップショットの管理方法を説明しており、内容は次のとおりです。
関連項目:
スナップショットの詳細は、「スナップショット」を参照してください
スナップショットを管理するための主インタフェースは、Oracle Enterprise Managerです。可能な場合は、Oracle Enterprise Managerを使用してスナップショットを管理してください。
Oracle Enterprise Managerを使用できない場合、スナップショットは、コマンドライン・インタフェースでDBMS_WORKLOAD_REPOSITORY
パッケージを使用して管理します。DBAロールは、DBMS_WORKLOAD_REPOSITORY
プロシージャの起動に必要です。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
デフォルトでは、Oracle Databaseにより、1時間ごとにスナップショットが自動的に生成されます。ただし、自動生成されるスナップショットとは異なる時点の統計を取得するために、手動でスナップショットを作成することが必要な場合があります。
コマンドライン・インタフェースを使用したスナップショットの作成
手動でスナップショットを作成するには、CREATE_SNAPSHOT
プロシージャを使用します。
例6-1に、CREATE_SNAPSHOT
プロシージャ・コールを示します。
例6-1 CREATE_SNAPSHOTプロシージャの使用
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); END; /
この例では、ローカル・データベース・インスタンスのスナップショットがただちに作成され、フラッシュ・レベルは、デフォルトのフラッシュ・レベルであるTYPICAL
に指定されます。新たに作成されたスナップショット(および任意の既存スナップショット)の情報を表示するには、DBA_HIST_SNAPSHOT
ビューを使用します。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
DBA_HIST_SNAPSHOT
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください
デフォルトでは、Oracle Databaseにより、8日を超えてAWRに格納されているスナップショットが自動的に消去されます。ただし、領域を解放するために、一定範囲のスナップショットを手動で削除することが必要な場合があります。
コマンドライン・インタフェースを使用したスナップショットの削除
一定範囲のスナップショットを手動で削除するには、DROP_SNAPSHOT_RANGE
プロシージャを使用します。
例6-2に、DROP_SNAPSHOT_RANGE
プロシージャ・コールを示します。
例6-2 DROP_SNAPSHOT_RANGEプロシージャの使用
BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 22, high_snap_id => 32, dbid => 3310949047); END; /
この例では、スナップショットIDが22から32の範囲のスナップショットが、データベース識別子が3310949047
のデータベース・インスタンスからただちに削除されます。このスナップショット範囲から取得された任意のASHデータも消去されます。
ヒント:
削除するスナップショットを決定するには、DBA_HIST_SNAPSHOT
ビューを使用して、既存のスナップショットを確認します。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
DBA_HIST_SNAPSHOT
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください
指定されたデータベースIDのスナップショット生成に関して、その間隔、保存および取得済上位SQLを調整できますが、この調整によって、Oracle Database診断ツールの精度に影響を与える可能性があります。
コマンドライン・インタフェースを使用したスナップショット設定の変更
MODIFY_SNAPSHOT_SETTINGS
プロシージャを使用すると、次に示すように、様々なスナップショット設定を変更できます。
INTERVAL
設定は、データベースがスナップショットを自動的に生成する頻度に影響します。
RETENTION
設定は、データベースがスナップショットをAWRに保存する期間に影響します。
TOPNSQL
設定は、SQL基準(経過時間、CPU時間、解析コール、共有可能メモリー、バージョン・カウント)ごとにフラッシュする上位SQLの数に影響します。
この設定の値は、統計レベルまたはフラッシュ・レベルによる影響を受けず、AWR SQL収集のシステム・デフォルト動作より優先されます。この設定値をMAXIMUM
に設定して、共有SQL領域内の完全なSQLセットを取得することは可能ですが、この値(または非常に大きい数値)に設定すると、収集および保存するデータが増加するため、領域およびパフォーマンスの問題が生じる可能性があります。
設定を変更するには、次の例に示すように、MODIFY_SNAPSHOT_SETTINGS
プロシージャを使用します。
例6-3に、MODIFY_SNAPSHOT_SETTINGS
プロシージャ・コールを示します。
例6-3 MODIFY_SNAPSHOT_SETTINGSプロシージャの使用
BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 43200, interval => 30, topnsql => 100, dbid => 3310949047); END; /
この例では、データベース識別子が3310949047
のデータベースのスナップショット設定が、次のように変更されます。
保存期間は43200分(30日)に指定されます。
各スナップショットの間の間隔は30分に指定されます。
SQL基準ごとにフラッシュする上位SQLの数は100に指定されます。
データベースの現在の設定を確認するには、DBA_HIST_WR_CONTROL
ビューを使用します。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
DBA_HIST_WR_CONTROL
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください
Oracle Databaseでは、デフォルトで、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。必要な場合には、ベースラインを手動で作成、削除または名前変更し、ベースラインしきい値の設定を表示できます。また、変動ウィンドウ・ベースラインのウィンドウ・サイズを手動で変更できます。
この項では、ベースラインの管理方法を説明しており、内容は次のとおりです。
関連項目:
ベースラインの詳細は、「ベースライン」を参照してください
ベースラインを管理するための主インタフェースは、Oracle Enterprise Managerです。可能な場合は、Oracle Enterprise Managerを使用してベースラインを管理します。
Oracle Enterprise Managerを使用できない場合、ベースラインは、コマンドライン・インタフェースでDBMS_WORKLOAD_REPOSITORY
パッケージを使用して管理します。DBAロールは、DBMS_WORKLOAD_REPOSITORY
プロシージャの起動に必要です。
関連項目:
Oracle Enterprise Managerを使用したベースラインの管理については、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
Oracle Databaseでは、デフォルトで、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。ただし、パフォーマンスが低下している期間に取得された別のベースラインまたはスナップショットと比較できるように、最適なレベルで運用されているシステムを表す固定ベースラインを手動で作成することが必要な場合があります。
コマンドライン・インタフェースを使用してベースラインを作成するには、CREATE_BASELINE
プロシージャを使用します。
例6-4に、CREATE_BASELINE
プロシージャ・コールを示します。
例6-4 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; /
この例では、データベース識別子が3310949047
のデータベース・インスタンスに、次の設定でベースラインが作成されます。
開始スナップショットの順序番号は270です。
終了スナップショットの順序番号は280です。
ベースライン名はpeak baseline
です。
ベースラインの有効期限は30日です。
ベースラインが作成されると、Oracle Databaseにより、一意のベースラインIDが新規ベースラインに自動的に割り当てられます。
ヒント:
ベースラインに含めるスナップショットの範囲を決定するには、DBA_HIST_SNAPSHOT
ビューを使用して、既存のスナップショットを確認します。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
DBA_HIST_SNAPSHOT
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください
ディスク領域を節約するには、使用されなくなったベースラインを定期的に削除することを検討してください。ベースラインに関連付けられたスナップショットは、ベースラインが明示的に削除されるか、ベースラインが期限切れになるまで無期限に保持されます。
コマンドライン・インタフェースを使用してベースラインを削除するには、DROP_BASELINE
プロシージャを使用します。
例6-5に、DROP_BASELINE
プロシージャ・コールを示します。
例6-5 DROP_BASELINEプロシージャの使用
BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak baseline', cascade => FALSE, dbid => 3310949047); END; /
この例では、ベースラインpeak baseline
が、データベース識別子が3310949047
のデータベース・インスタンスから削除され、関連付けられたスナップショットが保存されます。
ヒント:
削除するベースラインを決定するには、DBA_HIST_BASELINE
ビューを使用して、既存のベースラインを確認します。
ヒント:
関連付けられているスナップショットをベースラインとともに削除するには、cascade
パラメータをTRUE
に設定します。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
コマンドライン・インタフェースを使用してベースラインの名前を変更するには、RENAME_BASELINE
プロシージャを使用します。
例6-6に、RENAME_BASELINE
プロシージャ・コールを示します。
例6-6 RENAME_BASELINEプロシージャの使用
BEGIN DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE ( old_baseline_name => 'peak baseline', new_baseline_name => 'peak mondays', dbid => 3310949047); END; /
この例では、データベース識別子が3310949047
のデータベース・インスタンスに存在するベースラインの名前が、peak baseline
からpeak mondays
に変更されます。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
適応しきい値とともに使用する場合、ベースラインには、データベースでメトリックしきい値を計算する際に使用できるAWRデータが含まれます。
関連項目:
ベースライン・メトリックしきい値の詳細は、「適応しきい値」を参照してください
コマンドライン・インタフェースを使用して、ベースライン期間におけるメトリック値のサマリー統計を表示するには、SELECT_BASELINE_METRICS
ファンクションを使用します。
DBMS_WORKLOAD_REPOSITORY.SELECT_BASELINE_METRICS ( baseline_name IN VARCHAR2, dbid IN NUMBER DEFAULT NULL, instance_num IN NUMBER DEFAULT NULL) RETURN awr_baseline_metric_type_table PIPELINED;
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
Oracle Databaseでは、デフォルトで、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。システム定義による変動ウィンドウ・ベースラインのデフォルトのウィンドウ・サイズは、現在のAWR保存期間であり、デフォルトでは8日です。適応しきい値のしきい値をより正確に計算するためにサイズを大きくするなど、特定の状況では、デフォルトの変動ウィンドウ・ベースラインのウィンドウ・サイズを変更することが必要な場合があります。
関連項目:
変動ウィンドウ・ベースラインの詳細は、「変動ウィンドウ・ベースライン」を参照してください
コマンドライン・インタフェースを使用して、デフォルトの変動ウィンドウ・ベースラインのウィンドウ・サイズを変更するには、MODIFY_BASELINE_WINDOW_SIZE
プロシージャを使用します。
例6-7に、MODIFY_BASELINE_WINDOW_SIZE
プロシージャ・コールを示します。
例6-7 MODIFY_BASELINE_WINDOW_SIZEプロシージャの使用
BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE ( window_size => 30, dbid => 3310949047); END; /
この例では、データベース識別子が3310949047
のデータベース・インスタンスのデフォルトの変動ウィンドウ・ベースラインが30日にサイズ変更されます。
注意:
ウィンドウ・サイズは、AWR保存設定の値以下の値に設定する必要があります。現在のAWR保存期間を超えるウィンドウ・サイズを設定するには、「スナップショット設定の変更」の手順に従ってあらかじめretention
パラメータの値を増やしておく必要があります。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
ベースライン・テンプレートを使用すると、将来の指定された期間を取得するベースラインを自動的に作成できます。この項では、ベースライン・テンプレートの管理方法を説明しており、内容は次のとおりです。
関連項目:
ベースライン・テンプレートの詳細は、「ベースライン・テンプレート」を参照してください
ベースライン・テンプレートを管理するための主インタフェースは、Oracle Enterprise Managerです。可能な場合は、Oracle Enterprise Managerを使用してベースライン・テンプレートを管理します。
Oracle Enterprise Managerを使用できない場合、ベースライン・テンプレートは、コマンドライン・インタフェースでDBMS_WORKLOAD_REPOSITORY
パッケージを使用して管理します。DBAロールは、DBMS_WORKLOAD_REPOSITORY
プロシージャの起動に必要です。
関連項目:
Oracle Enterprise Managerを使用したベースライン・テンプレートの管理については、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください
単一ベースライン・テンプレートを使用して、将来の単一の固定期間におけるベースラインを作成できます。たとえば、単一ベースライン・テンプレートを作成し、2012年4月2日の午後5:00から午後8:00までに取得されるベースラインを生成できます。
コマンドライン・インタフェースを使用して単一ベースライン・テンプレートを作成するには、CREATE_BASELINE_TEMPLATE
プロシージャを使用します。
例6-8に、CREATE_BASELINE_TEMPLATE
プロシージャ・コールを示します。
例6-8 CREATE_BASELINE_TEMPLATEプロシージャの使用
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE ( start_time => '2012-04-02 17:00:00 PST', end_time => '2012-04-02 20:00:00 PST', baseline_name => 'baseline_120402', template_name => 'template_120402', expiration => 30, dbid => 3310949047); END; /
この例では、3310949047
というデータベースIDを持つデータベース上に、2012年4月2日の午後5:00から午後8:00までの期間におけるベースラインbaseline_120402
を生成するtemplate_120402
というベースライン・テンプレートが作成されます。このベースラインは、30日後に期限切れとなります。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
繰返しベースライン・テンプレートを使用すると、将来の一定期間において特定の時間間隔で繰り返されるベースラインを自動的に作成できます。たとえば、繰返しベースライン・テンプレートを作成し、2012年の毎週月曜日の午後5:00から午後8:00までに繰り返されるベースラインを生成できます。
コマンドラインを使用して繰返しベースライン・テンプレートを作成するには、CREATE_BASELINE_TEMPLATE
プロシージャを使用します。
例6-9に、CREATE_BASELINE_TEMPLATE
プロシージャ・コールを示します。
例6-9 CREATE_BASELINE_TEMPLATEプロシージャの使用
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE ( day_of_week => 'monday', hour_in_day => 17, duration => 3, expiration => 30, start_time => '2012-04-02 17:00:00 PST', end_time => '2012-12-31 20:00:00 PST', baseline_name_prefix => 'baseline_2012_mondays_', template_name => 'template_2012_mondays', dbid => 3310949047); END; /
この例では、3310949047
というデータベースIDを持つデータベース上に、2012年4月2日の午後5:00から2012年12月31日の午後8:00までの期間において毎週月曜日の午後5:00から午後8:00までベースラインを生成するtemplate_2012_mondays
というベースライン・テンプレートが作成されます。各ベースラインは、baseline_2012_mondays_
という接頭辞付きの名前で作成され、30日後に期限切れとなります。
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
すでに使用されていないベースライン・テンプレートは、ディスク領域を節約するために定期的に削除できます。
コマンドラインを使用してベースライン・テンプレートを削除するには、DROP_BASELINE_TEMPLATE
プロシージャを使用します。
例6-10に、DROP_BASELINE_TEMPLATE
プロシージャ・コールを示します。
例6-10 DROP_BASELINE_TEMPLATEプロシージャの使用
BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE ( template_name => 'template_2012_mondays', dbid => 3310949047); END; /
この例では、template_2012_mondays
というベースライン・テンプレートが、データベース識別子が3310949047
のデータベース・インスタンスから削除されます。
ヒント:
削除するベースライン・テンプレートを決定するには、DBA_HIST_BASELINE_TEMPLATE
ビューを使用して、既存のベースライン・テンプレートを確認します
関連項目:
DBMS_WORKLOAD_REPOSITORY
パッケージについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
Oracle Databaseでは、システム間で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\12.1.0.1\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レポートで表示します。ただし、AWRに格納されている履歴データは、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レポートには、セクション間ですばやくナビゲートできるようにリンクが組み込まれています。
注意:
指定した範囲のスナップショットにワークロード・アクティビティのないデータベースに対してレポートを実行すると、一部のレポート統計について0より小さいか100を超えるパーセンテージが計算される場合があります。この結果は、その統計に意味のある値がないことを意味します。
この項では、AWRレポートの生成方法を説明しており、内容は次のとおりです。
AWRレポートを生成するための主インタフェースは、Oracle Enterprise Managerです。可能な場合は、Oracle Enterprise Managerを使用してAWRレポートを生成してください。
Oracle Enterprise Managerを使用できない場合は、SQLスクリプトを実行してAWRレポートを生成します。これらのスクリプトを実行するには、DBAロールが必要です。
関連項目:
Oracle Enterprise Managerを使用したAWRレポートの生成については、『Oracle Database 2日でパフォーマンス・チューニング・ガイド』を参照してください
この項では、コマンドライン・インタフェースでSQLスクリプトを実行し、AWRレポートを生成する方法を説明します。これらのスクリプトを実行するには、DBAロールが必要です。
この項の内容は次のとおりです。
コマンドライン・インタフェースを使用して、ローカル・データベース・インスタンスに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レポートが生成されます。
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レポートが生成されます。
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レポートが生成されます。
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レポートが生成されます。
EM Expressのパフォーマンス・ハブ機能では、指定した期間のすべてのパフォーマンス・データの統合ビューを示すアクティブ・レポートが提供されます。レポートは完全にインタラクティブです。この内容はHTMLファイルに保存され、このファイルはWebブラウザを使用してオフラインでアクセスできます。
関連項目:
EM Expressのパフォーマンス・ハブ機能の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください
この項では、パフォーマンス・ハブ・アクティブ・レポートの生成方法を説明しており、内容は次のとおりです。
パフォーマンス・ハブ・アクティブ・レポートを使用すると、指定した期間に使用可能なすべてのパフォーマンス・データが表示されます。期間に対してリアルタイム・データまたは履歴データのいずれを選択するかによって、パフォーマンス・ハブで使用可能なタブが異なります。リアルタイム・データを選択した場合、最後の時間のリアルタイム・データが表示されるため、より詳細なデータが表示されます。履歴データを選択した場合は、より詳細なデータが表示されますが、データ・ポイントは選択した期間の自動ワークロード・リポジトリ(AWR)の間隔に平均化されます。
この項では、パフォーマンス・ハブ・アクティブ・レポートについて説明しており、内容は次のとおりです。
パフォーマンス・ハブ・アクティブ・レポートには、様々なパフォーマンス領域に分類されたパフォーマンス・データを表示してナビゲートできるインタラクティブ・タブが含まれます。
パフォーマンス・ハブ・アクティブ・レポートに含まれるタブには次のものがあります。
サマリー
「サマリー」タブにはリソース使用量、平均アクティブ・セッションおよびロード・プロファイル情報などのシステム・パフォーマンスの概要が示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
アクティビティ
「アクティビティ」タブにはASH分析が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
ワークロード
「ワークロード」タブには、コール率、ログオン率および上位SQLなどのワークロード・プロファイルに関するメトリック情報が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
RAC
「RAC」タブには、受け取ったグローバル・キャッシュ・ブロック数および平均ブロック待機時間などのOracle RAC固有のメトリックが表示されます。このタブはOracle RAC環境でのみ使用できます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
監視されたSQL
「監視されたSQL」タブには、監視対象のSQL文に関する情報が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
ADDM
「ADDM」タブには、ADDM分析タスクとリアルタイムADDM分析レポートの情報が表示されます。このタブはリアルタイム・データ、ならびに履歴データに使用できます。
最新のADDM結果
「最新のADDM結果」タブには、過去5分間のシステム・パフォーマンスのリアルタイム分析が表示されます。このタブは、パフォーマンス・ハブ・アクティブ・レポートの指定期間が過去の時間内にある場合のみ使用できます。このタブはリアルタイム・データのみに使用できます。
データベース時間
「データベース時間」タブには、様々なメトリックのカテゴリ別の待機イベントが表示されます。このタブは履歴データのみに使用できます。
リソース
「リソース」タブには、オペレーティング・システムおよびI/Oの使用状況統計が表示されます。このタブは履歴データのみに使用できます。
システム統計
「システム統計」タブにはデータベースおよびシステム統計が表示されます。このタブは履歴データのみに使用できます。
レポート・タイプを選択することで、パフォーマンス・ハブ・アクティブ・レポートの各タブ内に表示される詳細のレベルを選択できます。
パフォーマンス・ハブ・アクティブ・レポートに使用可能なレポート・タイプには次のものがあります。
基本
すべてのタブの基本情報のみがレポートに保存されます。
標準
基本レポート・タイプに保存された情報以外に、「監視されたSQL」タブに含まれた上位SQL文のSQL監視情報とADDMレポートがレポートに保存されます。
すべて
標準レポート・タイプに保存された情報以外に、「監視されたSQL」タブに含まれた全SQL文のSQL監視情報と、すべてのタブに対するすべての詳細レポートがレポートに保存されます。
次のいずれかの方法でコマンドライン・インタフェースを使用して、パフォーマンス・ハブ・アクティブ・レポートを生成できます。
「SQLスクリプトを使用したパフォーマンス・ハブ・アクティブ・レポートの生成」の説明に従った、SQLスクリプトの使用。
『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』の説明に従った、DBMS_PERF
パッケージの使用。
この項では、コマンドライン・インタフェースでperfhubrpt.sql
SQLスクリプトを実行して、パフォーマンス・ハブ・アクティブ・レポートを生成する方法を説明します。このスクリプトの実行にはDBAロールが必要です。
パフォーマンス・ハブ・アクティブ・レポートを生成する手順:
SQLプロンプトで次のように入力します。
@$ORACLE_HOME/rdbms/admin/perfhubrpt.sql
目的のレポート・タイプを指定します。
Please enter report type: typical
使用可能なレポート・タイプの詳細は、「パフォーマンス・ハブ・アクティブ・レポートのタイプについて」を参照してください。
使用するデータベースのデータベース識別子の値を入力します。
Please enter database ID: 3309173529
ローカル・データベースを使用する場合は、null値(デフォルト値)を入力します。ローカル・データベース以外のデータベースのデータベース識別子を指定する場合、パフォーマンス・ハブ・アクティブ・レポートはインポートされたAWRデータから生成されます。
使用するデータベース・インスタンスのインスタンス番号の値を入力します。
Please enter instance number: all instances
すべてのインスタンスを指定する場合は、all instances
(デフォルト値)と入力します。
終了時間および開始時間をdd:mm:yyyy hh:mi:ss
の形式で指定して、目的の期間を入力します。
Please enter end time in format of dd:mm:yyyy hh24:mi:ss: 03:04:2014 17:00:00 Please enter start time in format of dd:mm:yyyy hh24:mi:ss: 03:04:2014 16:00:00
レポート名を入力するか、デフォルトのレポート名を受け入れます。
Enter value for report_name: my_perfhub_report.html
この例では、2014年4月3日の午後4時から午後5時までの指定期間について、データベースID値3309173529
のすべてのデータベース・インスタンスでmy_perfhub_report
というパフォーマンス・ハブ・アクティブ・レポートが生成されます。