10.2 パフォーマンスの問題の診断

■AWR(自動ワークロードリポジトリ)

パフォーマンス情報は、SQG上にあり、流動的に変化するため、データベースにそれら情報を蓄積保存し、後から、比較参照することができる。

データベースは、データベースの状態とパフォーマンス情報を、定期的にスナップショット形式で収集している。

これをAWRスナップショットと呼ぶ。

AWRスナップショットは、任意の時点のシステム状態に関する統計サマリーのデータです。

MMONバックグラウンドプロセスによって、60分ごとに収集され、SYSAUX表領域に存在するAWR(自動ワークロードリポジトリ)に格納されます。

AWRは、データベースの使用状況の履歴をデータベースに提供します。AWRが、提供する情報は、データベースの全ての自己管理機能の基礎になっている。

▼AWRスナップショットの感覚及び保存期間の変更

ADDMによるシステム分析は、AWRスナップショットに基づいている。デフォルトではスナップショットの保存の期間は、8日間、スナップショット収集の間隔は、60分に1回に設定されている。これらの設定値は、Enterprise Manager Cloud ControlやPL/SQLパッケージで変更できる。

■ADDM(自動データベース診断モニタ)

ADDM(自動データベース診断モニタ)は、データベース全体のアドバイザとなる機能です。

ADDMは、AWRスナップショットを元にして、トップダウンシステム分析を行い、分析結果をAWRに格納する。

この処理は、60分に1回、AWRスナップショットが取得された後、自動実行され、分析結果には、問題の説明と推奨操作が含まれる。

※トップダウンシステム分析では、最初に症状を識別し、次にパフォーマンス問題の根本的な原因に到達するまで精査する。

※ADDMのトップダウンシステム分析の目標は、DBTime(データベースがユーザのリクエストの処理に費やした時間)を減少させることです。

▼ADDMによる分析結果のサマリの表示

最新のADDMの分析結果は、EM Express(Enterprise Manager Databese Express)のパフォーマンス・タブページのパフォーマンスメニューにあるパフォーマンス・ハブセクションで確認することができる。

このセクションには、下記の情報が含まれる。

項目説明      
ADDMAWR間隔(デフォルトでは60分)に基づいた従来のADDM
リアルタイムADDM多大な影響を与える一時的な問題をリアルタイムで検出して、診断する。
最新のADDM結果過去5分間のリアルタイムADDM分析及び結果

■アドバイザの使用

通常、ADDMは、特定のアドバイザを実行して、問題をさらに詳細に分析することを推奨します。

データベースには、さまざまなアドバイザが用意されています。各アドバイザは、データベース管理にとって、強力なツールとなります。さまざまなデータベース管理の問題を解決するための適切なアドバイスを提供してくれます。

▼アドバイザの分類

アドバイザは、パフォーマンス関連のものとその他のものに分類できます。

パフォーマンス関連のアドバイザには、ADDM、SQLチューニングアドバイザ、および、メモリ関連のアドバイザがある。

その他のアドバイザには、セグメントアドバイザ、UNDOアドバイザ、MTTRアドバイザなどがある。

※メモリ関連のアドバイザとは、メモリの設定に関するアドバイザとなります。メモリ管理モードに応じて、さまざまなメモリアドバイザを使用することができます。

アドバイザ名説明        
ADDMデータベース全体に関するアドバイザ
SQLチューニングアドバイザ1つ以上のSQL文を分析して、パフォーマンスを改善するための推奨事項を提示する。
メモリアドバイザOracleインスタンスに割り当てるターゲットメモリ容量の設定に関するアドバイスを提示する。自動メモリ管理が有効な場合に使用できる。
SGAアドバイザSGAのターゲットサイズの構成に関するアドバイスを提示する。自動共有メモリ管理が有効な場合に使用できる。
PGAアドバイザインスタンスPGAのターゲットサイズの構成に関するアドバイスを提示する。自動共有メモリ管理、手動教諭メモリ管理が有効な場合に使用できる。
バッファキャッシュアドバイザバッファキャッシュのサイズ設定に関するアドバイスをていK持する。手動共有メモリ管理が有効な場合に使用できる。
その他のアドバイザ名説明          
セグメントアドバイザセグメント内の領域の断片化のレベルに基づいて、そのセグメントの縮操作が必要か否かのアドバイスを提示する。
UNDOアドバイザシステムアクティビティの統計情報や、最も時間のかかる問合せ時間、UNDO保存期間の低しきい値(最小UNDO保存期間)に基づいて、UNDO表領域のサイズ設定に役立つアドバイスを提示する。
MTTRアドバイザ指定した時間内にインスタンスリカバリを完了させるために、データベース内部の調整を行う。

■SQLチューニングアドバイザ

ADDMは、デフォルトでは60分に1回、AWR(自動ワークロードリポジトリ)のスナップショットが取得された後に実行される。

ADDMは、AWRが収集した直近1時間の主要統計を分析し、高負荷SQL文を含むあらゆるパフォーマンスの問題を識別します。そして、パフォーマンス問題が見つかった場合は、それらをADDMの結果として、EM Expressの自動データベース診断モニタ(ADDM)ページに表示する。

また、高負荷SQL文が識別された場合は、SQLチューニングアドバイザの実行などの推奨事項が提供される。

▼SQLチューニングアドバイザ

 SQLチューニングアドバイザとは、単一または、複数のパフォーマンスが最適でないSQL文をチューニングして、問題解決を行う機能です。

チューニング対象は、SELECT文のみです。INSERT文などのDMLは考慮されません。

通常は、ADDMの分析結果から使用が推奨された場合にSQLチューニングアドバイザを実行します。ただし、ADDMとは関係ない区、CPU時間やI/O、メモリなどのリソースの使用量が多いSQL文や、SQLワークロードに対して、個別に実行することもできます。

SQLチューニングアドバイザは、負荷の高いSELECT文を選択し、それに対して、下記の推奨事項を生成します。

・SQLプロファイル(SQL文固有の補助統計データ)の作成または変更。

・新しい索引の作成

・オプティマイザ統計のリフレッシュ

・SQLの再構築

SQLチューニングアドバイザは、下記のソースに対して、実行できます。

ソース名説明         
トップアクティ過去1時間に実行された最もリソースが集中していたSQL文。最近のパフォーマンス問題の原因となる可能性がある。
履歴SQLAWRに記録されたSQL文(AWRの保存期間内に実行された高負荷のSQL文)。一連のSQL文が24時間単位で評価される。
SQLチューニングセット(STS)指定した一連のSQL文と関連するメタデータを1つのデータベースオブジェクトとして、グループ化したもの。STSは、AWRスナップショットによって、取得されたSQL文、または、任意のSQLワークロードから作成できる。

Oracleデータベースのマニュアルでは、SELECT文は、DMLに含まれるが、SQLチューニングアドバイザでは、DMLは考慮されない仕様のため、SELECT文を除くデータ更新系(INSERT文、UPDATE文、DELETE文など)をDMLと解釈させる場合もある。

▼自動SQLチューニングアドバイザ

SQLチューニングアドバイザは、Oracle Databese 11g以降、システムメンテナンス期間中のメンテナンスタスクとして、自動的に実行されるように成りました。これを自動SQLチューニングアドバイザと呼ぶ。

自動実行中に、アドバイザは、高負荷のSQL問合せを選択して、それらの問合せの推奨チューニングを生成します。また、SQLプロファイルの推奨事項を自動的に実装するように構成できます。

SQLプロファイルとは、そのSQL文固有の補助統計データです。これは、問合せオプティマイザが効率的に実行計画を生成できるようにするために用意されています。

SQLプロファイルの自動実装は、デフォルトでは無効ですが、有効にすると、アドバイザは、パフォーマンスが少なくとも3倍向上すると見られるSQL文にのみ、SQLプロファイルを作成します。

その他の推奨事項(新しい索引の作成、オプティマイザ統計のリフレッシュ、SQLの再構築など)は、手動で実装します。自動SQLチューニングアドバイザでも、SELECT文のみが考慮され、DML文は考慮されません。

SQLプロファイルを実装すると、問合せオプティマイザは、通常のデータベース統計とともにSQLプロファイルに格納されている情報を使用して、実行計画を生成する。このため、パフォーマンス向上が見込める。

▼メモリ関連のアドバイザ

ADDMは、データベースのパフォーマンスを定期的に評価して、パフォーマンス問題を特定する。この時、使用可能なメモリ容量が不十分であることがパフォーマンスに悪影響を与えていると判明した場合は、ADDMからメモリ割当て量を増やすことが推奨されている。

 メモリの割当量を決定する際は、下記で紹介する各種メモリ関連のアドバイザから提案されるアドバイスを参考にします。使用するアドバイザは、メモリコンポーネントの管理方法(自動メモリ管理、自動共有メモリ管理、手動共有メモリ管理など)によって、異なる。

管理方法使用できるアドバイザ
自動メモリ管理メモリアドバイザ
自動共有メモリ管理+自動PGAメモリ管理
(自動メモリ管理は無効)
・SGAアドバイザ
・PGAアドバイザ
手動共有メモリ管理+自動PGAメモリ管理
(自動メモリ管理、自動共有メモリ管理は無効)
・バッファキャッシュアドバイザ
・PGAアドバイザ

それぞれのメモリコンポーネントの管理方法、使用できるアドバイザの組み合わせについて、理解する必要がある。

▼メモリアドバイザ

メモリコンポーネントの管理方法が自動メモリ管理の場合にメモリの割当量を増やすことが推奨された場合、自動メモリ管理のメモリ設定を変更する前に、EM Express(Enterprise Manager Database Express)のメモリアドバイザのグラフを参照して、異なるターゲットメモリサイズの設定を使用することによって、節約される時間の割合を予測できる。

この予測は、自動メモリ管理のメモリターゲットサイズ(MEMORI_TARGET初期化パラメータ)の設定値を考慮する際に参考になる。

▼SGAアドバイザ・PGAアドバイザ

自動メモリ管理を無効にすると、自動共有メモリ管理と自動PGAメモリ管理が有効な状態になる。

この状態のときに、メモリの割当量を増やすことが推奨された場合、自動共有メモリ管理のメモリ設定を変更する前に、EM ExpressのSGAアドバイザのグラフを参照して、異なる合計SGAサイズを使用することによって、節約される時間の割合を予測する。

これは、自動共有メモリ管理のSGAメモリターゲットサイズ(SGA_TARGET初期化パラメータ)の設定値を考慮するときの参考になる。

また、PGAの総量(PGA_AGGREGATE_TARGET初期化パラメータ)を考慮する際は、PGAアドバイザのグラフを使用する。

▼バッファキャッシュアドバイザ

自動共有メモリ管理を無効化すると手動共有メモリ管理になる。

PGAは、自動PGAメモリ管理となる。

この状態のときに、メモリの割当量を増やすことが推奨された場合、手動教諭メモリ管理のメモリ設定を変更する前に、EM Expressのバッファキャッシュアドバイザのグラフを参照して、異なるデータベースキャッシュサイズを使用することによって、節約される読み取りの推定割合を予測する。

データベースバッファキャッシュのサイズ(DB_CACHE_SIZE初期化パラメータ)の設定値を考慮する際に参考になる。

あわせて読みたい