データベースで検出されるパフォーマンスにおける一般的な問題

この項ではデータベース内で検出された共通のパフォーマンスの問題をリストして説明します。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ガイド』を参照してください