日本語PDF

11 高負荷のSQL文の識別

高負荷SQL文は不均衡な量のシステム・リソースを消費します。これらのSQL文はデータベースのパフォーマンスに多大な影響を与える頻度が高く、パフォーマンスおよびリソース使用量を最適化するためにチューニングする必要があります。データベースが正常にチューニングされた場合でも、非効率的なSQLがパフォーマンスを著しく低下させることがあります。

高負荷SQL文の識別は定期的に実行する必要がある重要なSQLチューニング・アクティビティです。自動データベース診断モニター(ADDM)により、事前に潜在的な高負荷SQL文を識別することで、このタスクが自動化されます。また、Oracle Enterprise Manager Cloud Control (Cloud Control)を使用して、詳細な調査を必要とする高負荷SQL文を識別できます。高負荷SQL文を識別した後、SQLチューニング・アドバイザおよびSQLアクセス・アドバイザを使用してこれらをチューニングできます。

この章では高負荷SQL文の識別方法を説明しています。次の項で構成されています。

ADDMの検出結果に基づく高負荷SQL文の識別

デフォルトで、ADDMが1時間に1回事前に実行されます。これにより自動ワークロード・リポジトリ(AWR)によって最近1時間に収集された主要統計が分析され、高負荷SQL文を含むあらゆるパフォーマンスの問題を識別します。パフォーマンスの問題が見つかった場合は、それらの問題がADDMの結果として自動データベース診断モニター(ADDM)ページに表示されます

ADDMにより、各ADDM結果と推奨事項が提供されます。高負荷SQL文が識別されると、SQL文でのSQLチューニング・アドバイザの実行などの推奨事項がADDMにより提供されます。「SQL文のチューニング」 の説明に従って、SQL文のチューニングを開始できます。

上位SQLに基づく高負荷SQL文の識別

ADDMはシステム規模のパフォーマンス低下を引き起こす可能性のある高負荷SQL文を自動的に識別します。通常の状況では、高負荷SQL文の手動による識別は不要です。ただし、場合によってはより大まかなレベルでSQL文を監視することがあります。

Cloud Controlのトップ・アクティビティ・ページの「上位SQL」セクションにより高負荷SQL文を5分間隔で識別できます。

図11-1は、「トップ・アクティビティ」ページの例を示しています。このページには、データベースで実行される上位アクティビティの1時間の時間軸が表示されます。データベース・アクティビティの高い割合を使用するSQL文は、「上位SQL」セクションの下にリストされ、5分間隔で表示されます。

図11-1 「トップ・アクティビティ」ページ

図11-1の説明が続きます
「図11-1 「トップ・アクティビティ」ページ」の説明

「SQLモニタリング」にアクセスするには:

  1. 「ターゲット」ドロップダウン・メニューから「データベース」を選択します。

    詳細は、データベースのホームページのアクセスを参照してください。

  2. 「パフォーマンス」ドロップダウンから、「パフォーマンス・ハブ」および「ASH分析」を選択します。

  3. 「平均アクティブ・セッション基準」の右側にあるドロップダウン・メニューを使用して、「SQL」およびそのポップアップ・オプションの1つを選択します。

    • SQL ID
    • トップ・レベルSQL ID
    • SQL強制一致署名
    • SQL計画ハッシュ値
    • SQL完全計画ハッシュ値
    • SQL計画操作
    • SQL計画操作行
    • SQLオプコード
    • トップ・レベルSQLオプコード
  4. 5分間隔を移動するには、影付きボックスを目的の時間にドラッグします。

    「上位SQL」セクションに含まれる情報は自動的に更新され、選択した時間間隔を反映します。