データベース統計の収集について
Oracle Databaseは、すべてのレベル(セッション・レベルを除く)でほとんどの統計の累積値とデルタ値を、自動ワークロード・リポジトリ(AWR)に自動的に存続させます。このプロセスは通常の期間に繰り返され、結果はAWRスナップショットに取得されます。スナップショットで取得したデルタ値は、時間ごとの各統計に対する変更を示します。
統計的ベースラインは、通常、システムが最適なレベルで正常に動作している期間中に取得された統計的割合の集合です。ベースラインで取得された統計を、パフォーマンスが低下している期間に取得された統計と比較してパフォーマンスの問題を診断するには、統計的ベースラインを使用します。これにより、大幅に値が大きくなっていて問題の原因だと思われる特定の統計を識別できます。AWRは、AWRスナップショットのペアまたは範囲をベースラインとして指定して保存できるようにすることで、ベースライン・データの取得をサポートします。
一般的にメトリックは、累積的な統計における変化の割合です。この割合は、時間、トランザクション、データベース・コールなど、様々な単位に対して測定できます。たとえば、1秒当たりのデータベース・コールの数はメトリックです。メトリック値は、一部のV$ビューに表示され、このビューに表示される値は、きわめて短い時間間隔(通常は60秒)での平均値です。最新のメトリック値の履歴は、V$ビューを介して使用でき、データの一部はAWRスナップショットでも存続されます。
次の各項では、より効果的なデータベース統計の収集を可能にするOracle Databaseの様々な機能について説明します。
ノート:
-
プラガブル・データベース(PDB)とともにAWR機能を使用している場合には、データ可視性および権限の要件が異なります。AWR機能などの管理機能がマルチテナント・コンテナ・データベース(CDB)で機能する仕組みの詳細は、Oracle Multitenant管理者ガイドを参照してください。
-
この章に記載されているAWR機能を使用するには、Oracle Diagnostic Packのライセンスが必要です。
自動ワークロード・リポジトリ
AWRは、問題の検出および自己チューニングを目的として、パフォーマンス統計を収集、処理およびメンテナンスします。この収集されたデータは、メモリーとデータベースの両方に格納され、レポートおよびビューに表示されます。
AWRにより収集され処理される統計は、次のとおりです。
-
データベース・セグメントのアクセス統計と使用統計を決定するオブジェクト統計。
-
アクティビティの時間使用に基づく時間モデル統計。
V$SYS_TIME_MODELおよびV$SESS_TIME_MODELビューに表示されます。 -
V$SYSSTATおよびV$SESSTATビューで収集されるシステム統計とセッション統計の一部。 -
システム上で最大負荷を生成しているSQL文。経過時間やCPUタイムなどの基準に基づきます。
-
アクティブ・セッション履歴(ASH)統計は、最新のセッション・アクティビティの履歴を表します
関連項目:
-
様々なタイプのデータベース統計の詳細は、「データベース統計について」を参照してください
-
V$SYS_TIME_MODEL、V$SESS_TIME_MODEL、V$SYSSTATおよびV$SESSTATビューの詳細は、『Oracle Databaseリファレンス』を参照してください
スナップショット
スナップショットは、自動データベース診断モニター(ADDM)によりパフォーマンスの比較に使用される、特定の期間の履歴データのセットです。デフォルトでは、1時間ごとにパフォーマンス・データのスナップショットが自動的に生成され、その統計はAWRに8日間保存されます。スナップショットの作成や、スナップショット保存期間の変更を手動で行うこともできますが、通常は必要ありません。
AWRは、スナップショット間の違いを比較し、システム負荷への影響に基づいて収集するSQL文を判別します。これにより、期間中に収集する必要のあるSQL文の数が減少します。スナップショットが作成されると、スナップショットに取得されたデータがADDMにより分析され、パフォーマンス分析が実行されます。
関連項目:
スナップショットの管理の詳細は、「スナップショットの管理」を参照してください
ベースライン
ベースラインは、パフォーマンス上の問題が発生したときに、他のスナップショットと比較するために保持されている特定期間のスナップショットのセットです。ベースラインに含まれるスナップショットはAWRの自動消去プロセスから除外され、無期限に保持されます。
使用可能なベースラインには、次の複数のタイプがあります。
固定ベースライン
固定ベースラインは、過去の指定時における、固定した連続的な期間に対応します。ベースラインは最適なレベルでのシステム動作を表す必要があるため、固定ベースラインを作成する前に、ベースラインとして選択する期間を慎重に検討してください。将来的に、このベースラインを、パフォーマンスの低下期間中に取得された別のベースラインまたはスナップショットと比較して、時間経過に沿ってパフォーマンスの低下を分析できます。
関連項目:
固定ベースラインの管理の詳細は、「ベースラインの管理」を参照してください
変動ウィンドウ・ベースライン
変動ウィンドウ・ベースラインは、AWR保存期間内に存在するすべてのAWRデータに対応します。データベースは、AWR保存期間全体のAWRデータを使用して、メトリックしきい値を計算できます。
Oracle Databaseでは、システム定義の変動ウィンドウ・ベースラインが自動的に保持されます。システム定義による変動ウィンドウ・ベースラインのデフォルトのウィンドウ・サイズは、現在のAWR保存期間であり、デフォルトでは8日です。変動ウィンドウ・ベースラインのサイズを変更するには、変動ウィンドウの日数を、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の自己管理機能の大部分が動作しなくなります。また、スナップショットを手動で作成することもできません。このため、自動スナップショット収集を無効にしないことをお薦めします。
Oracle Databaseでは、デフォルトの表領域としてSYSAUXが使用されるため、通常は、AWRデータはそこに格納されます。AWRデータの格納先として別の表領域を指定できます。AWRで複数のDBIDからの情報を格納している場合は(インポートしたスナップショット、AWRHubなど)、その表領域をDBIDごとに指定できます。現在の表領域を確認するには、DBA_HIST_WR_CONTROL.TABLESPACE_NAMEを参照してください。
関連項目:
スナップショット間隔および保存期間のデフォルト値を変更する方法の詳細は、「スナップショット設定の変更」を参照してください