データベースで検出されるパフォーマンスにおける一般的な問題
この項ではデータベース内で検出された共通のパフォーマンスの問題をリストして説明します。Oracleパフォーマンス・メソッドに従うと、Oracle Databaseインスタンスでのこれらの問題を回避できます。問題がある場合は、「Oracleパフォーマンス・メソッドの使用」で説明されているように、Oracleパフォーマンス・メソッドのステップを繰り返すか、またはこれらの問題に対処する項を参照してください。
-
CPUのボトルネック
CPUの限界のためにアプリケーションのパフォーマンスが低下していますか。「データベースのパフォーマンスの自動監視」で説明されているように、CPUがボトルネックとなって発生するパフォーマンスの問題は、ADDMにより診断されます。また、「CPU使用率の監視」で説明されているように、Cloud Controlの「パフォーマンス」ページでもCPUのボトルネックを識別できます。
-
サイズ設定が小さすぎるメモリー構造
システム・グローバル領域(SGA)、プログラム・グローバル領域(PGA)、バッファ・キャッシュなどのOracleのメモリー構造は適切なサイズですか。メモリー構造のサイズが小さいことにより発生するパフォーマンスの問題は「データベースのパフォーマンスの自動監視」で説明されているようにADDMにより診断されます。また、「メモリー使用率の監視」で説明されているようにCloud Controlの「パフォーマンス」ページを使用してメモリー使用率の問題を識別できます。
-
I/O容量の問題
I/Oサブシステムは正常に動作していますか。「データベースのパフォーマンスの自動監視」で説明されているように、I/Oの能力の問題によるパフォーマンスの問題はADDMにより診断されます。また、「ディスクI/O使用率の監視」の説明に従って、Cloud Controlの「パフォーマンス」ページを使用してディスクI/Oの問題を識別することもできます。
-
アプリケーションによるOracle Databaseの非効率的な使用
アプリケーションが非効率的にOracle Databaseを使用していますか。データベースへの新規接続を何度も行ったり、SQL解析を過度に行ったり、少量のデータで過度の競合が発生(アプリケーション・レベルのブロック競合とも呼ばれます)したりすると、アプリケーションのパフォーマンスが大幅に低下します。「データベースのパフォーマンスの自動監視」で説明されているように、アプリケーションによるOracleデータベースの使用が非効率的なために発生したパフォーマンスの問題は、ADDMにより診断されます。また、「ユーザー・アクティビティの監視」の説明に従って、Cloud Controlの「パフォーマンス」ページを使用して、SQL、セッション、サービス、モジュールおよびアクションなどの様々なディメンションでトップ・アクティビティを監視できます。
-
同時実行による問題
同時アクティビティが多数発生し、データベースのパフォーマンスが低下していますか。同時アクティビティが多数発生すると、ロックまたはバッファ・キャッシュの待機の形で明示される共有リソースの競合が起こります。「データベースのパフォーマンスの自動監視」で説明されているように、同時実行によるパフォーマンスの問題はADDMにより診断されます。また、「上位セッションの監視」の説明に従って、同時実行による問題をCloud Controlの「上位セッション」を使用して識別することもできます。
-
データベース構成に関連する問題
理想的なパフォーマンス・レベルになるようにデータベースが最適な構成になっていますか。たとえば、ログ・ファイルのサイズ設定の異常、アーカイブの問題、過度のチェックポイント、非効率的なパラメータ設定などの徴候はありませんか。「データベースのパフォーマンスの自動監視」で説明されているように、データベースの構成の問題が原因となっているパフォーマンスの問題は、ADDMにより診断されます。
-
短期間のパフォーマンスの問題
短期間または断続的に発生するパフォーマンスの問題に関してユーザーが不満を持っていませんか。AWRによって作成されるスナップショットの間隔によって、短期間のパフォーマンスの問題がADDMで取得されない可能性があります。短期間のパフォーマンスの問題は、「一時的なパフォーマンスの問題の解決」の説明に従って、アクティブ・セッション履歴レポートを使用して識別できます。
-
時間の経過によるデータベースのパフォーマンスの低下
時間が経過するにつれてデータベースのパフォーマンスが低下している徴候はありませんか。たとえば、データベースの動作が6か月前と異なるとユーザーが感じていませんか。AWR期間比較レポートを生成して、構成設定、ワークロード・プロファイルおよび統計の差を、パフォーマンスが安定していた期間とパフォーマンスが低下していた期間で比較して識別します。「時間の経過によるパフォーマンスの低下」で説明されているように、この操作によりパフォーマンスの低下の原因を識別できます。
-
効率の悪いまたは負荷が大きいSQL文
システムに影響を与える過度のシステム・リソースを使用するSQL文はありませんか。高負荷SQL文によって発生するパフォーマンスの問題は、データベースのパフォーマンスの自動監視およびADDMの検出結果に基づく高負荷SQL文の識別で説明されているようにADDMにより診断されます。また、「上位SQLに基づく高負荷SQL文の識別」で説明されているように、Cloud Controlの上位SQLを使用することで高負荷SQL文を識別できます。これらを識別すると、「SQL文のチューニング」で説明されているように、SQLチューニング・アドバイザを使用して高負荷SQL文をチューニングできます。
-
オブジェクト競合
連続してアクセスされるためボトルネックの原因になっているデータベース・オブジェクトはありませんか。オブジェクト競合によって発生するパフォーマンスの問題は「データベースのパフォーマンスの自動監視」で説明されているようにADDMによって診断されます。また、「データ・アクセス・パスの最適化」の説明に従って、SQLアクセス・アドバイザを使用してこれらのオブジェクトへのデータ・アクセス・パスを最適化できます。
-
SQL文のチューニング後の予期しないパフォーマンスの低下
チューニング後に、SQL文のパフォーマンスが低下していませんか。SQL文をチューニングすると、SQL文の実行計画の変更の原因となり、SQLのパフォーマンスに大きく影響します。変更はSQLパフォーマンスの向上につながる場合もあります。場合によっては、システム変更によってSQL文が低下し、SQLパフォーマンスが低下することがあります。
本番システムで変更する前に、SQLパフォーマンス・アナライザを使用して、テスト・システムでチューニングしたSQLの影響を分析できます。この機能によって、次によるSQLワークロードへのシステム変更の影響を予想できます。
-
変更前後のパフォーマンスの測定
-
パフォーマンスの変更を説明するレポートの生成
-
低下または向上するSQL文の識別
-
低下するSQL文ごとのチューニング推奨の提供
-
適切な場合のチューニング推奨の実装
参照:
SQLパフォーマンス・アナライザの使用方法の詳細は、『Oracle Database Testingガイド』を参照してください
-