10 データベースの監視およびチューニング

データベースのパフォーマンスを監視し、最適に実行されているかどうかを確認することは、データベース管理者にとって重要なタスクの1つです。この章では、データベースの状態の監視、パフォーマンスの問題の特定、および是正措置の実施を容易にするOracle Databaseの特長と機能について説明します。

この章のトピックは、次のとおりです:

10.1 プロアクティブなデータベースの監視

Oracle Databaseは、データベースの状態およびパフォーマンスの監視を容易にします。Oracle Databaseは、データベースの状態およびパフォーマンスに関連するバイタル・サイン(メトリック)を監視し、データベースに対して実行されるワークロードを分析します。また、管理者として注意が必要な問題を自動的に特定します。インシデント(データベースの重大なエラー)は、EM Expressのデータベースのホームページで報告されます。

この項では、次の項目について説明します。

10.1.1 データベースの全般的な状態およびワークロードの監視

データベース・ホーム・ページでは、データベースの状態およびワークロードを監視できます。定期的に更新されるこのページはデータベースの状態に関する一般的な情報を提供します。

データベースの全般的な状態およびワークロードを監視するには、次のようにします。

  1. データベース・ホームページに移動します。
  2. (オプション)「自動リフレッシュ」リストの選択したリフレッシュ間隔の右側にある「リフレッシュ」アイコンをクリックして、表示情報を更新します。

    データベースのホームページがデータベースから最後に収集された日時が、ページの右上隅近くに表示されます。

    デフォルトでは、データベースのホームページで60秒ごとに自動的にリフレッシュされます。ページの右上隅の「自動リフレッシュ」リストで「オフ」を選択すると、自動的なリフレッシュを回避できます。最新情報を表示するには、「リフレッシュ」アイコンをクリックする必要があります。

  3. 「ステータス」セクションでデータベースの状態について概要を把握します(このセクションには次の情報が含まれています)。
    • 稼働時間

      データベースが稼働している時間に関する情報

    • タイプ

      データベースのタイプ。タイプは、単一インスタンス・データベース(CDB/非CDB)またはOracle RACデータベース(クラスタ・データベース)のいずれかです。

      データベース・タイプがCDBの場合、次の行ではデータベースをCDBとして識別し、CDB内のPDB数を示します。「CDB (n PDB)」行は「コンテナ」ページへのリンクになっていて、そのページにはCDBのコンテナ・リスト(PDB$SEEDは含まない)と、コンテナのステータス、パフォーマンスおよびリソース情報が表示されます。

    • バージョン

      データベースのバージョン番号

    • データベース名

      データベースの名前

    • インスタンス名

      データベース・インスタンスの名前

    • プラットフォーム名

      データベースが稼働しているプラットフォーム

    • ホスト名

      データベースが稼働しているホスト・システムの名前

    • スレッド

      データベースのREDOログ・スレッド

    • アーカイバ

      アーカイバ・プロセスのステータス

  4. 「パフォーマンス」セクションにアクティブ・セッション情報を表示します。「パフォーマンス」セクションには、過去の傾向情報が表示されます。

    「アクティビティ・クラス」チャートは、過去のアクティブなデータベース・セッションの平均数を示しています。このチャートには、(CPU上、I/O待機または別のリソースの待機などの)各セッションのアクティビティのタイプが表示されます。

    「サービス」チャートは、データベース・サービスに対する過去のアクティブなデータベース・セッションの平均数を示しています。

    Oracle RACの場合、「アクティビティ・クラス」チャートには、クラスタ内のすべてのインスタンス全体で集計されたアクティビティが表示されます。また、Oracle RACの場合、「インスタンス」チャートが表示され、インスタンスごとの「平均アクティブ・セッション」が示されます。

  5. 「リソース」セクションに、最新のデータ・ポイント(過去1分間)のリソースの使用率を表示します。「リソース」セクションには、次の情報が含まれています。
    • 「ホストCPU」グラフ

      このグラフは、過去1分間にデータベース・インスタンスとその他のプロセスで使用されたCPU時間の割合を示します。インスタンス・データの上にカーソルを置くと、フォアグラウンドおよびバックグラウンドのインスタンス・プロセスによって使用されたCPUの割合を表示できます。

      他のプロセスがCPU時間のほとんどを占有している場合、これはデータベースのホスト・コンピュータで稼働している他のアプリケーションがパフォーマンスの問題の原因になっていることを示します。

    • 「アクティブ・セッション」グラフ

      このグラフには、待機、ユーザーI/OおよびCPUごとに区分された過去1分間のアクティブ・セッションの平均数が示されます。

      • 待機

        これは、すべての待機クラスを合計した値です(ユーザーI/Oとアイドル待機イベントを除く)。待機クラスは、待機の種類に基づいて待機イベントをグループ化したものです。

        「パフォーマンス・ハブ」に移動し、「アクティビティ」タブをクリックすると、待機の詳細が表示されます。

      • ユーザーI/O

        これは、ユーザーI/Oを待機しているアクティブ・セッションの平均数です。ユーザーI/Oとは、ディスクからのデータの読取りまたはディスクへのデータの書込みがデータベースで行われる原因となる、ユーザーから生じたワークロードを意味します。

        「パフォーマンス・ハブ」に移動し、「サマリー」タブをクリックすると、I/Oの詳細が表示されます。

      • CPU

        これは、CPUを使用するアクティブ・セッションの平均数です。

        「パフォーマンス・ハブ」に移動し、「サマリー」タブをクリックすると、CPU使用率の詳細が表示されます。

    • メモリー(GB)

      このグラフは、データベースの共有プール、Javaプール、バッファ・キャッシュ、PGAおよびその他のSGAコンポーネントごとに区分された(最新のリフレッシュ時間の時点での)現在のメモリーの使用率を示します。

    • データ記憶域(GB)

      このグラフは、ユーザー・データ、データベース・ログ・ファイル、UNDO表領域、一時表領域、SYSAUX表領域およびSYSTEM表領域ごとに区分された(最新のリフレッシュ時間の時点での)現在の領域使用量を示します。

  6. 「SQLモニター」セクションにSQLアクティビティを表示します。

    このセクションの表には、監視対象のSQL文の実行に関する情報が表示されています。「ステータス」列に緑色の回転アイコンがある場合は、監視対象の文がまだ実行中です。「ステータス」列にチェック・マークがある場合は、文の実行が完了しています。

    SQL文は、CPUまたはI/O時間を5秒以上消費した場合にのみ監視されます。

    表では、各SQL文についての情報が列「ステータス」、「期間」、「SQL ID」、「セッションID」、「パラレル」、「データベース時間」および「SQLテキスト」に示されます。

    「SQL ID」をクリックすると、そのSQL文の詳細を含むSQLの詳細ページが表示されます。

  7. 「インシデント - 過去24時間」セクションには、24時間以内に発生したデータベース・インシデントに関する情報を含む表が表示されます。この表には、列「インスタンス」、「時間」、「インシデント」、「問題」および「エラー」があります。

    インシデントは、データベース内でのクリティカル・エラーの発生です。「インシデント - 過去24時間」表の各インシデントは、自動診断リポジトリ(ADR)に記録されます(ADRは、データベースの外部にあるディレクトリ構造であるため、データベースが停止しても問題の診断に使用できます)。ADR Command Interpreter (ADRCI)ユーティリティを使用して、クリティカル・エラーを調査できます。

  8. 「実行中のジョブ」セクションには、現在実行されているデータベース・ジョブを示す表が表示されます。この表には、「インスタンス」、「所有者」、「名前」、「経過時間」および「起動済」の各列があります。

    関連項目:

10.1.2 パフォーマンス・ハブを使用したパフォーマンスの監視

パフォーマンス・ハブを使用すると、指定した期間に使用可能なすべてのパフォーマンス・データが表示されます。期間を選択すると、パフォーマンス情報がパフォーマンス・サブジェクト・エリアに基づいて収集および表示されます。

この項には次のトピックが含まれます:

リアルタイム・データを選択した場合、データ・ポイントが毎分使用可能であるため、より詳細なデータが表示されます。

履歴データを選択した場合は、異なるメトリックごとに分類されたより詳細なデータが表示されますが、データ・ポイントは自動ワークロード・リポジトリ(AWR)の間隔(通常、1時間)に平均化されます。

期間に対してリアルタイム・データまたは履歴データのいずれを選択するかによって、パフォーマンス・ハブで使用可能なタブが異なります。

次の表では、パフォーマンス・ハブのタブについて説明し、各タブが使用可能な場合(リアルタイム・データを選択した場合、履歴データを選択した場合、または両方のデータを選択した場合)を示します。

パフォーマンス・ハブのタブ名 説明 使用可能な場合

サマリー

「サマリー」タブには、指定した期間のシステムのパフォーマンスの包括的ビューが表示されます。

パフォーマンス・ハブ・ページに過去1時間のリアルタイム・データが表示されると、このタブには、プロセスの実行、メモリー割当て、カテゴリ別のデータベース・アクティビティおよび過去1時間のI/Oデータのサマリーが表示されます。

パフォーマンス・ハブ・ページに履歴データが表示されると、このタブには、カテゴリ別の平均アクティブ・セッションの待機、1秒当たりのプロファイルのロード、アクティブなセッション・アクティビティ、データベース・インスタンスおよび他のプロセスごとのホストCPU使用率、1秒当たりのI/Oリクエスト(読取りおよび書込みリクエスト)および選択した期間のメモリー使用量のサマリーが表示されます。

非CDB、CDBまたはPDBの「期間の選択」フィールドでリアルタイム・データまたは履歴データを選択した場合

RAC

「RAC」タブは、EM ExpressがOracle RACデータベース(クラスタ・データベース)で使用されている場合にのみ表示されます。

リアルタイム・データを選択した場合、このタブには、グローバル・キャッシュ・アクティビティ情報、アクティビティのブレークダウン(平均アクティブ・セッション)およびインスタンスごとのリソース使用量(CPU、I/O、メモリー)が表示されます。

履歴データを選択した場合、このタブには、選択した期間のグローバル・キャッシュ・アクティビティ情報、アクティビティのブレークダウン(平均アクティブ・セッション)およびインスタンスごとのリソース使用量(CPU、I/O、メモリー)が表示されます。

「期間の選択」フィールドでリアルタイム・データまたは履歴データを選択した場合

アクティビティ

「アクティビティ」タブには、アクティブ・セッション履歴(ASH)分析が表示されます。これにより、選択した期間におけるASHの平均アクティブ・セッションに詳細にドリルダウンできます。

このタブを使用すると、平均アクティブ・セッション・ディメンションを選択し、選択した期間のそのディメンションの上位アクティビティを表示できます。たとえば、SQL文と、選択した期間に平均アクティブ・セッションの上位アクティビティを持つユーザー・セッションを表示できます。

非CDB、CDBまたはPDBの「期間の選択」フィールドでリアルタイム・データまたは履歴データを選択した場合

ワークロード

ワークロード・プロファイルのグラフには、過去60分間のユーザー・コール、解析コール、REDOサイズおよびSQL*Netのパターンがリアルタイム・モードで表示されます。「セッション」チャートにはログオン率、現在のログオンおよびオープン・カーソルが表示されます。SQL_IDをクリックすると、そのSQL文の詳細を含むSQLの詳細ページが表示されます。

非CDB、CDBまたはPDBの「期間の選択」フィールドでリアルタイム・データまたは履歴データを選択した場合

監視対象SQL

このタブを使用すると、選択した期間に実行中であったか完了した監視対象のSQL文に関する情報を表示できます。

表には、監視対象のSQL文の実行に関する情報が表示されています。「ステータス」列に緑色の回転アイコンがある場合は、選択した期間に監視対象の文が完了しませんでした。赤の十字は、エラーまたはセッションが終了したことが原因でSQLが完了しなかったことを示します。「ステータス」列にチェック・マークがある場合は、選択した期間に文の実行が完了しています。

SQL文は、CPUまたはI/O時間を5秒以上消費した場合にのみ監視されます。

文のステータス、文の期間、文のタイプ(SQL、PL/SQLまたはDBOP)、文のSQL ID、文のSQL計画ハッシュ、文を発行したユーザー、文がシリアル・ステートメントとして実行されたかパラレル・ステートメントとして実行されたか、データベースが文のCPUアクティビティ、I/Oまたはその他のアクティビティの実行に費やした時間、文に関連付けられた読取りおよび書込みリクエストとバイト、文の開始時間と終了時間などの情報を表示できます。

「SQL ID」をクリックすると、そのSQL文の詳細を含むSQLの詳細ページが表示されます。

非CDB、CDBまたはPDBの「期間の選択」フィールドでリアルタイム・データまたは履歴データを選択した場合

ADDM

「ADDM」タブを使用すると、選択した期間にデータベース内で実行されたタスクに対して、Automatic Database Diagnostics Monitor (ADDM)によって検出されたパフォーマンスの結果と推奨事項を表示できます。

ADDM機能の詳細は、パフォーマンス自己診断: 自動データベース診断モニターを参照してください。

非CDBまたはCDBの「期間の選択」フィールドでリアルタイム・データまたは履歴データを選択した場合。

このタブは、CDB管理者がCDBにログインし、PDBに移動(ドリル・ダウン)した場合にのみPDBで使用可能です。タブは、PDB管理者がPDBに直接ログインした場合には使用できません。

データベース時間

「データベース時間」タブを使用すると、様々なメトリックのカテゴリ別の待機イベントを表示したり、選択した期間の様々なメトリックの時間の統計を表示することができます。

非CDB、CDBまたはPDBの「期間の選択」フィールドで履歴データを選択した場合。

リソース

「リソース」タブを使用すると、選択した期間のオペレーティング・システム・リソース使用状況統計、I/Oリソース使用状況統計およびメモリー使用状況統計を表示できます。

非CDB、CDBまたはPDBの「期間の選択」フィールドで履歴データを選択した場合。

システム統計

「システム統計」タブを使用すると、選択した期間の値ごと、1トランザクション当たりまたは1秒当たりのデータベース統計を表示できます。

非CDB、CDBまたはPDBの「期間の選択」フィールドで履歴データを選択した場合。

コンテナ

「コンテナ」タブでは、CDB内のPDBについて、オープン時間、アクティブ・セッション、使用されたメモリー、I/Oリクエスト数、およびI/Oスループットに関する情報を確認できます。

CDBの「期間の選択」フィールドでリアルタイム・データまたは履歴データを選択した場合。

次の図は、「リアルタイム - 最近1時間」のデータが選択されている場合のパフォーマンス・ハブを示しています。

次の図は、履歴データが選択されている場合のパフォーマンス・ハブを示しています。

「パフォーマンス・ハブ」のデータを表示するには、次の手順を実行します。

  1. データベース・ホーム・ページ上部の「パフォーマンス」メニューから、「パフォーマンス・ハブ」を選択します。

    「サマリー」タブを含むパフォーマンス・ハブ・ページが表示されます。デフォルトでは、「パフォーマンス・ハブ」に過去1時間のリアルタイム・データが表示されます。

    「パフォーマンス・ハブ」にリアルタイム・データではなく履歴データを表示する場合は、「期間の選択」フィールドで異なる期間を選択します。

    上の図では、「期間の選択」フィールドで「履歴 - すべて」が選択されています。

  2. 「期間の選択」フィールドの下に日時ピッカーが表示されます。

    日時ピッカーの影付きブロック領域では、パフォーマンス統計が「パフォーマンス・ハブ」に現在表示されている期間を識別します。これは、「期間の選択」フィールドで選択した期間のサブセットです。

    「パフォーマンス・ハブ」に履歴データが表示されている場合、影付きブロック領域のいずれかの端部のユーザー制御をクリックしてドラッグすることによって、影付きブロック領域のサイズを増減できます。

    影付きブロック領域は、現在選択されているタブではなく、「パフォーマンス・ハブ」タブのすべてに統計が表示されている期間です。

  3. 「パフォーマンス・ハブ」に表示される任意のタブをクリックすると、そのタブにパフォーマンス・データが表示されます。
  4. 「PerfHubレポート」ボタンをクリックすると、パフォーマンス・ハブのアクティブ・レポートが生成され、「パフォーマンス・ハブ」タブの内容がHTMLファイルに保存されます。「PerfHubレポート」をクリックすると、「パフォーマンス・ハブ」のアクティブ・レポートに次のいずれかのレポート・タイプを選択するように求められます。
    • 基本: すべてのタブの基本情報がレポートに保存されます。

    • 標準: 基本レポート用のすべての情報が保存されます。また、「監視対象SQL」タブにある上位SQLのSQLモニター情報、およびADDMレポートも保存されます。

    • すべて: 基本レポート用のすべての情報が保存されます。また、「監視対象SQL」タブにある(上位SQLだけでなく)すべてのSQLのSQLモニター情報、およびすべてのタブの詳細レポートもすべて保存されます。

    その後で、アクティブ・レポートの保存先およびファイル名の入力を求めるプロンプトが表示され、そのファイル名と場所にレポートが生成されます。Webブラウザを使用してレポートを表示し、レポートの「パフォーマンス・ハブ」タブに移動します。

  5. 「パフォーマンス・ハブ」で履歴データが選択されている場合、「AWRレポート」ボタンをクリックすると、選択した期間のAWRレポートを生成できます。

    その後で、AWRレポートの保存先およびファイル名の入力を求めるプロンプトが表示され、そのファイル名と場所にレポートが生成されます。Webブラウザを使用して、レポートを表示します。

10.1.2.1 統計を表示する期間の指定

「リアルタイム - 最近1時間」モードでは、「パフォーマンス・ハブ」のデータはActive Session History (ASH)を元にしています。ASHデータは、ASHバッファが満杯の場合または1時間後にディスクに書き込まれ、AWRフレームワークの一部として格納されます。

デフォルトでは、AWRの保存期間は8日です。「パフォーマンス・ハブ」に履歴データを表示する場合、表示されているのはAWRに毎時スナップショットの一部として収集された統計です。

「パフォーマンス・ハブ」の「期間の選択」フィールドを使用すると、統計が表示可能な期間を決定できます。Oracle Databaseの統計は1時間メモリーに格納されるため、「リアルタイム - 最近1時間」オプションは「期間の選択」リストに常に表示されます。

次の表に示すように、「期間の選択」リストで使用可能な履歴データのオプションは、データがAWRで使用可能な期間によって変わります。

AWRデータが使用可能な期間 「期間の選択」リストの履歴オプション

24時間未満

履歴 - すべて脚注1

24時間以上7日未満

履歴 - 日

履歴 - すべて脚注1

履歴 - カスタム

7日

履歴 - 日

履歴 - 週

履歴 - カスタム

8日以上脚注 2

履歴 - 日

履歴 - 週

履歴 - カスタム

脚注1

このオプションは、AWRで1日未満のデータまたは1週間未満のデータが使用可能な場合にのみ使用できます。メモリーに格納されているデータベースの統計は、1時間後にAWRにフラッシュされます。

脚注 2

デフォルトのAWR保存期間は8日であるため、AWRに1週間を超えるデータを格納するには、デフォルトのAWR保存期間を変更する必要があります

「期間の選択」フィールドから履歴オプションを選択した後、日時ピッカーを使用して、「パフォーマンス・ハブ」タブにデータが表示される期間を指定します。

次の表では、「パフォーマンス・ハブ」の「期間の選択」フィールドで異なる値が選択されている場合に、日時ピッカーに表示され選択可能なデータについて説明します。

選択されている期間 時間ピッカー 説明

リアルタイム - 最近1時間

メモリーから過去1時間の統計を表示する

データは日時ピッカーに5分間隔で表示されます。日時ピッカーを使用して、「パフォーマンス・ハブ」に表示する1分から60分までのデータを選択します。

履歴 - 日

AWRから1時間から24時間までの統計を表示する

データは日時ピッカーに1時間間隔で表示されます。日時ピッカーを使用して、「パフォーマンス・ハブ」に表示する1時間から24時間までのデータを選択します。

履歴 - すべて

AWR統計が存在する期間の統計を表示する

AWRで1日未満のデータまたは1週間未満のデータが使用可能な場合にのみ表示されます。「履歴 - すべて」オプションは、「履歴 - 日」オプションまたは「履歴 - 週」オプションを提供するのに十分なAWRデータがない場合にのみ使用できます。

履歴 - 週

AWRから1日から7日までの統計を表示する

データは日時ピッカーに1日間隔で表示されます。日時ピッカーを使用して、「パフォーマンス・ハブ」に表示する1日から7日までのデータを選択します。

「履歴 - 週」が選択されると、デフォルトで日時ピッカーに現在の週のAWRデータが表示されます。日時ピッカーで前の週のAWRデータを表示するには、日時ピッカーで<ボタンを使用します。

履歴 - カスタム

「履歴 - カスタム」オプションを選択後に、「期間の選択」ダイアログ・ボックスで選択した期間のAWR統計を表示する

日時ピッカーを使用して、「パフォーマンス・ハブ」に統計を表示する期間を選択します。

関連項目:

10.1.3 スタンバイ・データベースに関するパフォーマンス統計の表示について

Oracle Active Data Guard環境内のスタンバイ・データベースに関するパフォーマンス統計は、EM Expressの「パフォーマンス・ハブ」を使用して表示できます。

EM Expressを使用してOracle Active Data Guard環境内のスタンバイ・データベースを表示すると、EM Expressメニュー・バーの左上のセクションに、スタンバイ・データベースの名前、データベースのリリース番号、および文字列「standby」が表示されます。たとえば、次の図は、ADGという名前が付けられたOracle Database 12c リリース2 (12.2.0.1.0)のスタンバイ・データベースに対応するメニュー・バーを示しています。


standby_db.pngの説明が続きます
図standby_db.pngの説明

Oracle Active Data GuardのRedo Applyメカニズムにより、プライマリ・データベースのリアルタイム・データと履歴データがスタンバイ・データベースに適用されます。ただし、スタンバイ・データベースに関する履歴パフォーマンス・データをプライマリ・データベースから「パフォーマンス・ハブ」で確認する必要性はほとんどないため、「パフォーマンス・ハブ」ではスタンバイ・データベースの履歴データを選択できません。「パフォーマンス・ハブ」の「期間の選択」ボタンは、スタンバイ・データベースには使用できません。そのため、「パフォーマンス・ハブ」では、スタンバイ・データベースについてはリアルタイム・データのみが表示可能になります。

注意:

スタンバイ・データベースに関するパフォーマンス統計を表示できるようにするには、そのためのOracle Active Data Guardオプションのライセンスが必要になります。

10.1.4 パフォーマンス自己診断: 自動データベース診断モニター

Oracle Databaseは、自動データベース診断モニター(ADDM)と呼ばれる自己診断エンジンを搭載しています。ADDMを使用すると、Oracle Databaseによってデータベース自身のパフォーマンスが診断され、特定された問題の解決方法が判断されます。

ADDMを使用した自動パフォーマンス診断を円滑化するために、Oracle Databaseではデータベースの状態およびワークロードのスナップショットが定期的に収集されます。スナップショットとは、パフォーマンスの比較のためにADDMで使用される一定期間の履歴データのセットです。スナップショットは、ある時点のシステムの状態に関する統計的サマリーを提供します。スナップショットは自動ワークロード・リポジトリ(AWR)に格納され、SYSAUX表領域に配置されます。スナップショットは、設定した期間(デフォルトでは8日間)にわたってこのリポジトリに格納された後、新しいスナップショット用の領域を確保するためにパージされます。

ADDMは、データを分析してシステムの主な問題を判別し、解決策を提示して予想される利益を定量化します。ADDM分析結果は、検出結果のセットを表しています。

EM Expressには、2タイプのADDM結果が用意されています。

ADDM

ADDMではAWRに取得および格納されたデータの分析が行われます。ADDMでのスナップショットのデフォルトの収集間隔は1時間です。

通常、ADDMはシステム全体のシステムの問題を特定するために使用します。次のようなパフォーマンスの問題に注意を促します。

  • SQL文を頻繁にロードしたためにデータベースによってCPU時間またはメモリーが多く使用された場合などに起こるリソース競合(ボトルネック)

  • アプリケーションによってデータベースに長時間ログインした場合などに起こる接続管理の低下

  • あるユーザー・プロセスが表内のデータを安全に更新するためにロックを取得しており、同じ表に対するロックを取得する必要がある他のユーザー・プロセスが待機状態になることで、データベースのパフォーマンスが低下する場合などに起こるマルチユーザー環境でのロック競合

リアルタイムADDM

リアルタイムADDMは、リアルタイムで自動的にデータベースを監視します。

リアルタイムADDMでは、次のような多大な影響を与える一時的な問題がアプリケーション・パフォーマンスを脅かす前に、それらを事前に検出して診断します。

  • 高CPU

  • I/Oのスパイク

  • メモリー

  • インターコネクトの問題

  • ハングおよびデッドロック

リアルタイムADDMは発生する可能性のあるパフォーマンスの問題を検出すると、データの収集をトリガーします。データはレポート・リポジトリ(AWRの一部)に保存されます。リアルタイムADDMレポートをEM Expressから表示すると、分析が実行され、結果と推奨事項が作成されます。リアルタイムADDMレポートはAWRに格納されるため、一定期間の問題の繰返しの識別に役立ちます。

表10-1は、EM Expressで使用可能なADDMの機能をまとめたものです。

表10-1 EM ExpressでのADDMの機能

主な内容 新規 説明 分析期間 分析結果を表示する方法

ADDM

いいえ

これは前のデータベース・リリースに存在していた従来のADDMです。「ADDMタスク」は、「パフォーマンス・ハブ」の「ADDM」タブに表示されます。

デフォルトのAWR間隔は1時間

「ADDM」タブの「ADDMタスク」表で、「タスク名」をクリックします。

リアルタイムADDM

あり

多大な影響を与える一時的な問題をリアルタイムで事前に検出して診断します。「リアルタイムADDMレポート」は、「パフォーマンス・ハブ」の「ADDM」タブに表示されます。

リアルタイム

「ADDM」タブの「リアルタイムADDMレポート」表で、レポートを選択し「パフォーマンス・レポートの表示」をクリックします。

10.2 ADDMを使用したパフォーマンスの問題の診断

データベースのパフォーマンスの問題が発生した場合は、診断および収集が必要です。通常、これらの問題は、異なる期間のデータを分析するADDMによって注意が促されます。

この項では、次の項目について説明します。

10.2.1 ADDMパフォーマンス結果のサマリーの確認

ADDMの分析結果は、各結果の説明と推奨アクションで構成されます。結果と結果がシステムに与える影響のサマリーを確認できます。

ADDMパフォーマンス結果のサマリーを確認するには、次のようにします。

  1. EM Expressの「パフォーマンス」メニューから「パフォーマンス・ハブ」を選択します。

    パフォーマンス・ハブ・ページがパフォーマンス・ハブ・ページのタブのリストに表示されます。

  2. 「期間の選択」フィールドで、その期間にパフォーマンス・データを表示する期間の値を1つ選択します。ページのタイトルが変更され、選択した期間が示されます。
  3. 「ADDM」タブをクリックします。

    選択した期間のADDMタスクが「ADDM」タブの「ADDMタスク」表に表示されます。

  4. ADDMタスクの「タスク名」列のリンクをクリックすると、タスクの詳細が表示されます。

10.2.2 ADDMパフォーマンス結果への対応

ADDMパフォーマンス結果に付随する推奨事項に従って対処できます。

ADDMパフォーマンス結果に対応するには、次のようにします。

  1. パフォーマンス・ハブ・ページの「ADDM」タブの「ADDMタスク」表で、「タスク名」列のリンクをクリックすると、そのタスクのパフォーマンス結果が表示されます。

    自動データベース診断モニター(ADDM)ページが表示されます。

    ADDMタスクのパフォーマンス結果と各結果のパフォーマンスの影響(%)が、「結果」表にリストされます。

  2. 特定の結果の「結果」列のリンクをクリックすると、結果とそれに関連する推奨事項(ある場合)が表示されます。

    パフォーマンス結果の詳細ページが表示されます。

    「パフォーマンス結果」表にADDMタスクのパフォーマンス結果がリストされます。各結果に対して、表では、結果カテゴリ、推奨アクション、推奨の理論的根拠および推奨事項の実装の予測される利点が示されます。

    ADDMを使用して実装できる推奨事項を含む結果を選択すると、その結果の「実装」ボタンが使用可能になります。

  3. ADDMを使用して実装する推奨事項を含む結果の場合、結果を選択して「実装」をクリックします。

    この例では、SQLチューニング・アドバイザのスケジュール・ページが表示され、選択したSQL文でSQLチューニング・アドバイザを実行するのに必要な情報の入力を求められます。

10.2.3 リアルタイムADDM結果のサマリーの確認

リアルタイムADDM結果は、リアルタイムADDMレポートが生成された時点の各結果の説明と一部の結果に対する推奨アクションで構成されます。結果と結果がシステムに与える影響のサマリーを確認できます。

リアルタイムADDMパフォーマンス結果のサマリーを確認するには、次のようにします。

  1. EM Expressの「パフォーマンス」メニューから「パフォーマンス・ハブ」を選択します。

    パフォーマンス・ハブ・ページがパフォーマンス・ハブ・ページのタブのリストに表示されます。

  2. 「期間の選択」フィールドで、その期間にパフォーマンス・データを表示する期間の値を1つ選択します。ページのタイトルが変更され、選択した期間が示されます。
  3. 「ADDM」タブをクリックします。

    選択した期間のリアルタイムADDMレポートがある場合は、レポートが「ADDM」タブの下部にある「リアルタイムADDMレポート」表に表示されます。

  4. 表の特定のレポートを表示するには、「レポート名」フィールドのレポートのリンクをクリックするか、表の行を選択して「パフォーマンス・レポートの表示」をクリックします。

10.2.4 リアルタイムADDM結果への対応

結果はリアルタイムADDMレポートで確認できます。

リアルタイムADDMパフォーマンス結果に対応するには、次のようにします。

  1. 「リアルタイムADDMレポート」表の特定のレポートを表示するには、「レポート名」フィールドのレポートのリンクをクリックするか、表の行を選択して「パフォーマンス・レポートの表示」をクリックします。

    リアルタイムADDMレポート・ページが表示されます。

  2. 「結果」表に、レポートの結果と各結果の影響が表示されます。「結果」表の結果を選択すると、その結果の推奨事項の詳細と結果詳細が「結果」表の下の「推奨事項の詳細」および「結果詳細」セクションに表示されます。

10.3 アドバイザを使用したデータベース・パフォーマンスの最適化

Oracle Databaseは、データベースの管理およびチューニングに役立つ一連のアドバイザを備えています。この項では、アドバイザのバックグラウンド情報を提供し、アドバイザの使用方法について説明します。内容は次のとおりです。

10.3.1 アドバイザについて

アドバイザはデータベース管理用の強力なツールです。アドバイザにより、領域、パフォーマンスおよびUNDO管理を含んだ広範囲に及ぶ重要な管理の問題の解決に対し特別なアドバイスが提供されます。通常、アドバイザはアラートよりも包括的な推奨事項を作成します。これはアラート生成が低コストを意図し、パフォーマンスにわずかな影響しかないのに対し、アドバイザは、多くのリソースを消費し、より詳細な分析を実行するためです。これはいくつかのアドバイザのwhat-if機能を使用し、その他のリソースからは得られないチューニングに重要な情報を提供します。一部のアドバイザは自動的に実行されます。

データベースのパフォーマンス改善に役立つアドバイザが用意されています。これには、自動データベース診断モニター(ADDM)、SQLアドバイザ、メモリー・アドバイザなどがあります。たとえば、SGAアドバイザは、システム・グローバル領域(SGA)のサイズ変更がパフォーマンスに与える影響をグラフィカルに示します。

パフォーマンス・アドバイザは次のような状況で実行します。

  • 特定の領域内での問題を解決する場合。たとえば、なぜ特定のSQL文がCPU時間の50パーセントを消費しているのかを判別する場合や、リソースの消費を削減するにはどうしたらよいかといった場合に、SQLチューニング・アドバイザを使用できます。

  • システムにメモリーを追加する場合。メモリー・アドバイザを使用して、SGAまたはPGA(プログラム・グローバル領域)の増加によるデータベース・パフォーマンスの影響を判別できます。

一部のアドバイザは、パフォーマンス・ハブ・ページまたはADDMの推奨事項からも起動できます。

表10-2では、パフォーマンス・アドバイザについて説明します。

表10-2 パフォーマンス・アドバイザ

アドバイザ 説明

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

ADDMを使用すると、Oracle Databaseによってデータベース自身のパフォーマンスが診断され、特定された問題の解決方法が判断されます。パフォーマンス自己診断: 自動データベース診断モニターADDMを使用したパフォーマンスの問題の診断を参照してください。

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

SQLチューニング・アドバイザは、1つ以上のSQL文を分析してパフォーマンス改善のための推奨事項を提示します。このアドバイザはメンテナンス期間中に自動的に実行されますが、手動での実行も可能です。自動SQLチューニング・アドバイザについておよびSQLチューニング・アドバイザの実行を参照してください。

データベースのメンテナンス・ウィンドウ(期間)の詳細は、『Oracle Databaseリファレンス』を参照してください。

メモリー・アドバイザ

  • メモリー・アドバイザ

  • SGAアドバイザ

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

  • PGAアドバイザ

メモリー・アドバイザは、合計メモリーのターゲット設定、SGAおよびPGAターゲット設定、またはSGAコンポーネントのサイズ設定の分析結果をグラフィカルに表示します。この分析結果は、データベース・パフォーマンスのチューニングやwhat-if計画に使用できます。現在のメモリー管理モードに応じて、様々なメモリー・アドバイザが使用可能です。

  • 自動メモリー管理が有効になっている場合は、メモリー・アドバイザを使用できます。このアドバイザは、インスタンスのメモリー・ターゲット合計に関するアドバイスを提供します。

  • 自動共有メモリー管理が有効になっている場合は、SGAアドバイザとPGAアドバイザを使用できます。

  • 手動共有メモリー管理と自動PGAメモリーが有効になっている場合は、バッファ・キャッシュ・アドバイザおよびPGAアドバイザを使用できます。

メモリー・アドバイザの詳細は、メモリー・アドバイザによるメモリー使用率の最適化を、メモリー管理モードの詳細は、メモリーの管理を参照してください。

UNDOアドバイザ

UNDOアドバイザは、UNDO表領域のサイズを正確に設定するのに役立ちます。また、任意のOracle Flashback要件に応じてUNDO保存期間のしきい値に小さな値を設定するときにも使用できます。UNDOアドバイザを使用したUNDO表領域の最小サイズの計算を参照してください。

オプティマイザ統計アドバイザ

オプティマイザ統計アドバイザは、統計および統計関連タスクの品質を分析する組込みの診断ソフトウェアです。アドバイザ・タスクがメンテナンス・ウィンドウで自動的に実行されますが、必要に応じて実行することもできます。次に、アドバイザ・レポートを表示できます。アドバイザが推奨事項を生成すると、システム生成スクリプトを実行して実装できる場合があります。

オプティマイザ統計アドバイザの使用方法の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください

10.3.2 SQLチューニング・アドバイザについて

SQLチューニング・アドバイザは、特定のSQL文またはSQL文のセットを検討し、効率を高めるための推奨事項を提供します。これにより、SQLプロファイル(問合せオプティマイザでSQL文の最適な実行計画を作成できるようにする情報の集合)の作成、SQL文の再構築、オプティマイザ統計のリフレッシュなどの各種推奨事項が生成されます。また、SQLチューニング・アドバイザを使用すると、(AWRに格納されている)過去の代替実行計画を選択してSQL文で使用することができ、このアドバイザは並列度プロファイルを推奨することもできます。EM Expressを使用すると、数回のマウス・クリックでこれらの推奨事項の多くを受け入れ、実装できます。

SQLチューニング・アドバイザを使用して、単一または複数のSQL文をチューニングできます。通常は、SQLチューニング・アドバイザの使用を推奨するADDMパフォーマンス結果を受けて実行します。リソース使用量が最も多いSQL文やSQLワークロードに対して定期的に実行することも可能です。

複数のSQL文をチューニングする場合、SQLチューニング・アドバイザはSQL文間の相互依存性を認識しません。SQLチューニング・アドバイザは、最適化の計画の問題点や特定のSQL構造体の誤った使用など、SQL文ごとに個別に問題を特定して、SQLパフォーマンスの問題を解決します。

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

  • アクティビティ: 「パフォーマンス・ハブ」の「アクティビティ」タブに表示される、過去1時間に実行された、最もリソース集中型であるSQL文(最近のパフォーマンスの問題の原因となる可能性がある)。

  • 履歴SQL: 「期間の選択」フィールドで履歴設定のいずれかが選択されている場合に、「パフォーマンス・ハブ」の「アクティビティ」タブに表示される、過去1日間、過去1週間または過去1か月のSQL文。このオプションは、SQL文のプロアクティブなチューニングに使用します。

  • ADDMの履歴SQL: 「パフォーマンス・ハブ」の「ADDM」タブのタスクを分析する際に検出される、ADDMタスクのリソース集中型であるSQL文。

  • SQLチューニング・アドバイザのSQL文: SQLチューニング・アドバイザのチューニング・タスクとして表示される、リソース集中型であるSQL文。

  • SQLチューニング・セット(STS): 指定した一連のSQL文。STSはAWRスナップショットによって取得されたSQL文またはSQLワークロードから作成されます。

注意:

EM Expressを使用してSTSを作成することはできません。STSの作成の詳細は、『Oracle Database SQLチューニング・ガイド』を参照してください。

関連項目:

10.3.3 自動SQLチューニング・アドバイザについて

SQLチューニング・アドバイザは、システム・メンテナンス・ウィンドウ(期間)でメンテナンス・タスクとして自動的に実行されます。自動実行中に、アドバイザは負荷の高いSQL問合せを選択し、そのチューニングの方法に関する推奨事項を生成します。

自動SQLチューニング・アドバイザは、SQLプロファイルの推奨事項を自動的に実装するように構成できます。SQLプロファイルには、そのSQL文に特化した追加SQL統計が含まれ、問合せオプティマイザが実行時に効率的な実行計画を生成できるようにします。自動実装を有効にすると、アドバイザは、パフォーマンスが少なくとも3倍は向上するとみられるSQL文にのみSQLプロファイルを作成します。新しい索引の作成、オプティマイザ統計のリフレッシュ、SQLの再構築など、その他の推奨事項は、手動で実装する必要があります。DML文は、自動SQLチューニング・アドバイザによるチューニングとはみなされません。

自動SQLチューニングの結果のサマリーを表示でき、SQLチューニング・アドバイザで処理済のすべてのSQL文のために作成された推奨事項に関する詳細なレポートも表示できます。選択した推奨事項を実装することができます。また、自動的に実装された推奨事項も参照できます。

自動SQLチューニング・アドバイザは、必要に応じて無効にすることができます。

10.3.4 自動SQLチューニング・アドバイザの構成

自動SQLチューニング・アドバイザに対して実行する構成タスクは次のとおりです。

  • SQLプロファイルの推奨の自動実装を有効にします。

    自動実装はデフォルトでは無効になっています。

  • SQLチューニング・アドバイザの1回実行時に実装されるSQLプロファイルの最大数を変更します。

    SQLプロファイルの推奨の自動実装が有効になっている場合は、デフォルトで、SQLチューニング・アドバイザの1回実行時に20個のSQLプロファイルが実装されます。

  • 全体で実装可能なSQLプロファイルの最大数を変更します。

    SQLプロファイルの推奨の自動実装が有効になっている場合は、デフォルトで、合計10000個のSQLプロファイルをSQLチューニング・アドバイザで実装できます。

自動SQLチューニング・アドバイザを構成するには、次の手順を実行します。

  1. EM_EXPRESS_ALLロールを持つユーザーとしてEM Expressにログインします。

    EM_EXPRESS_ALLロールの詳細は、非管理ユーザーのEM Expressへのアクセス権の付与を参照してください。

  2. EM Expressの「パフォーマンス」メニューから「SQLチューニング・アドバイザ」を選択します。

    「自動」タブを含むSQLチューニング・アドバイザ・ページが表示されます。

    「自動」タブに表示されるSQLチューニング・タスクはSYS_AUTO_SQL_TUNING_TASKです。このチューニング・タスクは、自動SQLチューニング・アドバイザによって毎日作成されます。タスクには、自動SQLチューニング・アドバイザによってチューニング推奨が生成された、高負荷のSQL問合せが含まれます。

  3. 「構成」ボタンをクリックします。

    「SQLチューニング設定」ダイアログ・ボックスが表示されます。

  4. (オプション)自動SQLチューニング・アドバイザを無効にするには、「自動SQLチューニング」オプションのチェックマークを外します。

    注意:

    「自動SQLチューニング」オプションを無効にすると、「SQLチューニング設定」ダイアログ・ボックスの他のオプションは無効になります。

  5. (オプション)「文ごとの時間制限」(秒)フィールドに、SQLチューニング・アドバイザが単一SQL文のチューニングにかかる最大時間(秒)を入力します。
  6. (オプション)「SQLプロファイルの自動実装」フィールドで、SQLプロファイルの自動実装を有効にする場合はチェックマークを付け、無効にする場合はチェックマークを外します。

    注意:

    「SQLプロファイルの自動実装」オプションを無効にすると、「1実行当たりに実装されたSQLプロファイルの最大数」および「実装されたSQLプロファイルの最大数(全体)」オプションの設定は無効になります。

  7. (オプション)「1実行当たりに実装されたSQLプロファイルの最大数」フィールドで、1日1回のSQLチューニング・アドバイザの実行時に実装できるSQLプロファイルの合計数を入力します。デフォルト値は20です。
  8. (オプション)「実装されたSQLプロファイルの最大数(全体)」フィールドで、全体で実装できるSQLプロファイルの合計数を入力します。デフォルト値は10000です。
  9. 「OK」をクリックします。

    「確認」ページが表示されます。

関連項目:

SQLプロファイルの詳細は、自動SQLチューニング・アドバイザについてを参照してください

10.3.5 自動SQLチューニング結果の表示

自動SQLチューニング・アドバイザのアクティビティをEM Expressで追跡できます。

自動SQLチューニング結果の表示手順:

  1. EM Expressの「パフォーマンス」メニューから「SQLチューニング・アドバイザ」を選択します。

    「自動」タブを含むSQLチューニング・アドバイザ・ページが表示されます。

    「自動」タブに表示されるSQLチューニング・タスクはSYS_AUTO_SQL_TUNING_TASKです。このチューニング・タスクは、自動SQLチューニング・アドバイザによって毎日作成されます。タスクには、自動SQLチューニング・アドバイザによってチューニング推奨が生成された、高負荷のSQL問合せが含まれます。

    SQLプロファイルの推奨事項を自動実装するように自動SQLチューニング・アドバイザを構成した場合、SQLチューニング・アドバイザ・ページの「自動」タブにある「SQLプロファイルの潜在的なDB時間利点」グラフに「実装済」バーが含まれます。「実装済」バーをクリックすると、自動実装されたすべてのSQLプロファイルが表示されます。

  2. 「上位SQL文」表で、チューニング推奨を表示するSQL文を含む行を選択して、「詳細の表示」をクリックします。

    この例では、ffy1dpzphwuudというSQL IDを持つSELECT文を選択し、詳細の表示をクリックしました。

    SQLのチューニング結果ページが開き、選択したSQL文のチューニング推奨のサマリーが表示されます。

  3. 「推奨の選択」セクションには、ページに推奨される実装が1つ見つかっていることが示されます。

    推奨事項を実装するには、表でその推奨事項を選択し、「実装」をクリックします。推奨事項を実装するために必要な情報の入力が求められます。

    どの推奨事項(ある場合)を実装するかを決定するには、各推奨事項の詳細を表示する必要があります。

    推奨事項の詳細を表示するには、表でその推奨事項を選択し、「詳細の表示」をクリックします。この例では、「SQLプロファイル」の推奨事項が選択されています。

    「推奨事項の詳細」ページが表示されます。

  4. このページの最上部セクションでは、パフォーマンスの推奨事項について説明され、セクションは推奨タイプにちなんで名付けられます。このセクションに使用可能な名前は、失効または欠落の統計情報、SQLの再構築、SQLプロファイルです。このセクションでは、推奨事項の概要について説明します。

    ページ下部の「実行計画の比較」セクションには、選択した文の1つ以上の実行計画を表示できるタブが含まれます。表示可能な4つのタブは、「元の計画」、「コストを調整した元の計画」、「SQLプロファイルを使用した計画」および「代替計画」です。「グラフ」および「表」ボタンを使用すると、実行計画をグラフィカルにまたは表形式で表示できます。この例では、実行計画が表形式で表示されています。

    より適している可能性のある実行計画が含まれていない推奨事項については、「元の計画」タブのみが表示され、元の計画の操作がタブに表示されます。

    「コストを調整した元の計画」タブをクリックすると、実行計画の手順は「元の計画」の手順と同じですが、(「操作コスト」列に示されているように、)「コストを調整した元の計画」の手順では手順のコストが異なります。

    「SQLプロファイルを使用した計画」タブをクリックした場合は、手順は「元の計画」の手順と異なり、(「操作コスト」列に示されているように、)コストも異なります。

    元の計画の実行履歴が見つからない場合に、「代替計画」ボタンが表示されます。この場合、SQLチューニング・アドバイザによって推奨された代替計画が元の計画より優れていると判明している場合は、今後Oracleオプティマイザで文の代替計画が選択されるように、その代替計画のSQL計画ベースラインを作成できます。

    推奨事項を実装するには、「推奨事項の詳細」ページの上部にある「実装」ボタンをクリックします。

10.3.6 SQLチューニング・アドバイザの実行

SQLチューニング・アドバイザを使用してSQL文をチューニングします。通常は、このアドバイザの使用を推奨するADDMパフォーマンス結果を受けて実行します。また、SQLチューニング・アドバイザを手動で起動できます。その理由の1つは、自動SQLチューニング・アドバイザによってチューニング対象とみなされない文をチューニングすることです。

SQLチューニング・アドバイザについてで説明されているように、SQLチューニング・アドバイザはチューニング対象のSQL文をいくつかのソースから選択できます。次の例では、アクティビティが最も多いSQL文をチューニングすると想定しています。

SQLチューニング・アドバイザを実行するには、次の手順を実行します。

  1. EM Expressの「パフォーマンス」メニューから「パフォーマンス・ハブ」を選択します。

    パフォーマンス・ハブ・ページが表示されます。

  2. 「期間の選択」フィールドで目的の期間を選択します。

    この例では、「期間の選択」フィールドで「履歴 - すべて」が選択されています。

  3. 「アクティビティ」を選択します。

    「アクティビティ」タブが表示されます。

  4. 「アクティビティ」タブの下部の表で、チューニングするSQL文を含む行を選択して、「SQLのチューニング」ボタンをクリックします。

    この例では、表の6番目の行のSQL文が選択されています。

  5. 「SQLチューニング・アドバイザのスケジュール」ウィザードが表示され、タスク情報ページが表示されます。

    タスク情報ページで、システムによって生成されたチューニング・タスク名を使用するか、選択したSQL文に対して作成されるチューニング・タスクに選択した名前を入力します。また、チューニング・タスクの説明を入力するオプションもあります。

    右矢印ボタンをクリックします。

  6. 有効範囲ページが表示されます。SQLチューニング・アドバイザが文の分析にかける合計時間(デフォルト値は「無制限」)および分析の有効範囲(「包括」または「制限」)を指定します。

    右矢印ボタンをクリックします。

  7. Scheduleページが表示されます。このページで、SQLチューニング・アドバイザをスケジュールして、文の分析を即時実行するか後で実行できます。SQLチューニング・アドバイザで文の分析を後で実行するよう選択した場合は、SQLチューニング・アドバイザが文を分析する時間を指定します。

    「OK」をクリックすると、選択したSQL文に対するSQLチューニング・アドバイザによるチューニング・タスクの作成が開始されます。

  8. SQLチューニング・アドバイザがSQL文の分析を終了すると、「完了」(チェック・マーク)アイコンがSQLチューニング・アドバイザ・ページの「ステータス」列に表示されます。

    SQLチューニング・アドバイザが分析を終了したSQL文を含む行を選択し、「結果の表示」をクリックすると、SQLチューニング・アドバイザによるこのSQL文に対する推奨事項が表示されます。この例では、最初の行が選択されています。

    SQLのチューニング結果: SQLIDページが表示され、選択したSQL文のチューニング推奨のサマリーが表示されます。

  9. ページ下部の「推奨の選択」セクションには、SQL文のチューニングの推奨が表示されます。

    ページに複数の推奨がある場合は、1つの推奨のみを実装する必要があります。

    推奨事項を実装するには、表でその推奨事項を選択し、「実装」をクリックします。推奨事項を実装するために必要な情報の入力が求められます。

    どの推奨事項(ある場合)を実装するかを決定するには、各推奨事項の詳細を表示する必要があります。

    注意:

    一部のSQL文には「SQLプロファイル」推奨があり、これはSQLチューニング・アドバイザが文に対してSQLプロファイルの作成を推奨することを意味します。SQLプロファイルが文に対して推奨されている場合、「推奨の選択」セクションには、「タイプ」列に「SQLプロファイル」の値がある推奨と、「SPAを使用した検証」ボタンが含まれます。文にSQLプロファイルを実装した場合の影響を検証するには、「SQLプロファイル」推奨を選択し、「SPAを使用した検証」をクリックします。

    推奨事項の詳細を表示するには、表でその推奨事項を選択し、「詳細の表示」をクリックします。

    この例では、推奨「システムのリアルタイムおよび履歴パフォーマンス・データの検索により、この文の大体実行計画の一部が見つかりました。」が選択されています。

    「推奨事項の詳細」ページが表示されます。

  10. このページの最上部セクションでは、パフォーマンスの推奨事項について説明され、セクションは推奨タイプにちなんで名付けられます。このセクションに使用可能な名前は、代替計画、失効または欠落の統計情報、SQLの再構築、SQLプロファイルです。このセクションでは、推奨事項の概要について説明します。

    ページ下部の「実行計画の比較」セクションには、選択した文の1つ以上の実行計画を表示できる1つ以上のタブが含まれます。表示可能な4つのタブは、「元の計画」、「コストを調整した元の計画」、「SQLプロファイルを使用した計画」および「代替計画」です。「表」および「グラフ」ボタンを使用すると、実行計画を表形式でまたはグラフィカルに表示できます。この例では、実行計画が表形式で表示されています。

    より適している可能性のある実行計画が含まれていない推奨事項については、「元の計画」タブのみが表示され、元の計画の操作が「元の計画」サブページに表示されます。

    「コストを調整した元の計画」サブページでは、実行計画の手順は「元の計画」の手順と同じですが、(「操作コスト」列に示されているように、)「コストを調整した元の計画」の手順では手順のコストが異なります。

    「SQLプロファイルを使用した計画」サブページでは、手順は「元の計画」の手順と異なり、(「操作コスト」列に示されているように、)コストも異なります。

    元の計画の実行履歴が見つからない場合は、「代替計画」サブページを使用できます。この場合、SQLチューニング・アドバイザによって推奨された代替計画が元の計画より優れていると判明している場合は、「SQL計画ベースラインの作成」ボタンをクリックすると、今後Oracleオプティマイザで文の代替計画が選択されるように、その代替計画のSQL計画ベースラインを作成できます。

    推奨事項を実装するには、ブラウザで「戻る」ボタンをクリックし、チューニング結果ページでその推奨事項を実装します。

10.3.7 スタンバイ・データベースのSQL文のチューニングについて

Oracle Active Data Guard環境では、プライマリ・データベースで読取り/書込みの問合せを実行できますが、読取り専用のSQL問合せはスタンバイ・データベースで実行されます。EM Expressの「SQLチューニング・アドバイザ」を使用すると、スタンバイ・データベースのコストが高い読取り専用SQL問合せをチューニングできます。

「SQLチューニング・アドバイザ」を使用してOracle Active Data Guardのワークロードをチューニングすると、スタンバイ・データベースの読取り専用の性質は維持されながら、SQLチューニング・プロセス全体がスタンバイでローカルに実行されます。これは、スタンバイからプライマリへのデータベース・リンクを使用して、あらゆるデータベース状態の変更(SQLプロファイル実装など)をプライマリに書き込むことで実現されます。プライマリに実装されている推奨事項は、Oracle Data GuardのREDO Applyによってスタンバイに適用されます。

注意:

スタンバイ・データベースのSQL文をチューニングできるようにするには、そのためのOracle Active Data Guardオプションのライセンスが必要になります。

関連項目:

10.3.7.1 スタンバイ・データベースのSQL文のチューニング

EM Expressの「SQLチューニング・アドバイザ」を使用すると、Oracle Active Data Guard環境内のスタンバイ・データベースのSQL文をチューニングできます。

注意:

スタンバイ・データベースのSQL文をチューニングできるようにするには、そのためのOracle Active Data Guardオプションのライセンスが必要になります。

このトピックは、SQLチューニング・アドバイザの実行のトピックで紹介した「SQLチューニング・アドバイザ」について熟知していることを前提としています。

「SQLチューニング・アドバイザ」を使用して、Oracle Active Data Guard環境内のスタンバイ・データベースのSQL文をチューニングするには:

  1. EM Expressの「パフォーマンス」メニューから「パフォーマンス・ハブ」を選択します。
    パフォーマンス・ハブ・ページが表示されます。「期間の選択」フィールドは使用できません。チューニングできるSQL文は、スタンバイでリアルタイムに実行するものにかぎられます。
  2. 「アクティビティ」を選択します。
    「アクティビティ」タブが表示されます。
  3. 「アクティビティ」タブの下部の表で、チューニングするSQL文を含む行を選択して、「SQLのチューニング」ボタンをクリックします。
    「SQLチューニング・アドバイザ」の「タスク情報」ページが表示されます。
  4. 「タスク情報」ページで、次のフィールドに値を指定します。
    • 名前: システムによって生成されたチューニング・タスク名を使用するか、選択したSQL文に対して作成されるチューニング・タスクに任意の名前を入力します。

    • 説明: チューニング・タスクの説明を入力するオプションもあります。

    • ソースDBリンク: 検索ボタンをクリックすると、「DBリンクの選択」ダイアログ・ボックスが表示されます。このダイアログ・ボックスには、このスタンバイ・データベースに存在しているプライマリ・データベースを指すデータベース・リンクがリストされます。プライマリ・データベースのSQLチューニング表にSQLチューニング・タスクを書き込むために使用するデータベース・リンクを選択します。次に、「OK」をクリックします。

  5. 「タスク情報」ページで、右矢印ボタンをクリックします。
  6. 「SQLチューニング・アドバイザ」の「有効範囲」ページが表示されます。SQLチューニング・アドバイザが文の分析に費やす合計時間(デフォルト値は「無制限」)と、分析の範囲(「包括」または「制限」)を指定します。

    「OK」をクリックすると、選択したSQL文に対するSQLチューニング・アドバイザによるチューニング・タスクの作成が開始されます。

    EM Expressにより、SQLチューニング・タスクのリストを示す「SQLチューニング・アドバイザ」ページにリダイレクトされます。

  7. SQLチューニング・アドバイザがSQL文の分析を終了すると、「完了」(チェック・マーク)アイコンがSQLチューニング・アドバイザ・ページの「ステータス」列に表示されます。

    SQLチューニング・アドバイザが分析を終了したSQL文を含む行を選択し、「結果の表示」をクリックすると、SQLチューニング・アドバイザによるこのSQL文に対する推奨事項が表示されます。

    SQLのチューニング結果: SQLIDページが表示され、選択したSQL文のチューニング推奨のサマリーが表示されます。

  8. ページ下部の「推奨の選択」セクションには、SQL文のチューニングの推奨が表示されます。

    ページに複数の推奨がある場合は、1つの推奨のみを実装する必要があります。

    推奨事項を実装するには、表でその推奨事項を選択し、「実装」をクリックします。推奨事項を実装するために必要な情報の入力が求められます。推奨事項は、「タスク情報」ページの「ソースDBリンク」フィールドで指定したデータベース・リンクを使用して、プライマリ・データベースに実装されます。

    どの推奨事項(ある場合)を実装するかを決定するには、各推奨事項の詳細を表示する必要があります。

    注意:

    一部のSQL文には「SQLプロファイル」推奨があり、これはSQLチューニング・アドバイザが文に対してSQLプロファイルの作成を推奨することを意味します。SQLプロファイルが文に対して推奨されている場合、「推奨の選択」セクションには、「タイプ」列の値が「SQLプロファイル」の推奨事項と、「SPAを使用した検証」ボタンが含まれます。スタンバイ・データベースは読取り専用であるため、スタンバイ・データベースでは「SPAを使用した検証」ボタンが使用できません。

    推奨事項の詳細を表示するには、表でその推奨事項を選択し、「詳細の表示」をクリックします。これにより、「推奨事項の詳細」ページで推奨事項を確認できます。

  9. 推奨事項を実装すると、SQLチューニング・アドバイザはスタンバイのデータベース・リンクを使用して、その推奨事項をプライマリ・データベースに書き込みます。この推奨事項は、Oracle Data GuardのREDO Applyメカニズムによってスタンバイ・データベースに伝播されます。
    これ以降、チューニングされたSQL文がスタンバイで実行されるときに、そのSQL文は、SQLチューニング・アドバイザを使用して実装された新しい推奨事項を使用して実行されるようになります。

    関連項目:

10.3.8 メモリー・アドバイザを使用したメモリー使用量の最適化

この項には、メモリー・アドバイザに関する情報が記載されています。

10.3.8.1 メモリー・アドバイザについて
十分な十分な物理メモリーがあるかどうかはOracle Databaseのパフォーマンスに重大な影響を与えます。Oracle Databaseは、自動メモリー管理機能により、SGAおよびPGAの各種コンポーネント間でメモリー配分を自動的に調整し、最適なパフォーマンスを維持します。この調整は、データベースに割り当てた合計メモリー容量の範囲内で行われます。

ADDMは、データベースのパフォーマンスを定期的に評価して、パフォーマンスの問題を特定します。現在の使用可能なメモリー容量が十分ではなく、パフォーマンスに悪影響を与えていることが判明した場合、ADDMはメモリー割当て量を増やすように推奨します。新しいメモリー割当て量はメモリー・アドバイザを使用して選択できます。

また、メモリー・アドバイザを使用して、次のことに関するwhat-if分析を実行できます。

  • データベースへ物理メモリーを追加するデータベース・パフォーマンスの利点

  • データベースで使用可能な物理メモリーの削減のデータベース・パフォーマンスの影響

メモリー・アドバイザを使用すると、メモリーのサイズ設定に関するアドバイスを次のように取得できます。

  • 自動メモリー管理が有効になっている場合は、Oracleインスンスに異なるターゲット・メモリー・サイズの設定を使用することによって、節約される時間の割合の予測を取得できます。

    詳細は、メモリー設定の変更: 自動メモリー管理を参照してください。

  • 自動メモリー管理が無効、自動共有メモリー管理が有効になっている場合は、異なる合計SGAサイズを使用することによって、節約される時間の割合の予測を取得できます。

    詳細は、メモリー設定の変更: 自動共有メモリー管理を参照してください。

  • 手動共有メモリー管理のみが有効になっている場合は、異なるデータベース・キャッシュ・サイズを使用することによって、節約される読取りの割合の予測を取得できます。

    詳細は、メモリー設定の変更: 手動共有メモリー管理を参照してください。

10.4 データベースの監視およびチューニング: Oracle by Example Series

Oracle by Example(OBE)には、『Oracle Database 2日でデータベース管理者』に関するシリーズが含まれています。このOBEでは、この項のタスクを段階的に説明し、注釈付きのスクリーンショットを使用します。

データベースの監視およびチューニングに関するOBEを参照するには、ご使用のWebブラウザで次のURLを入力します。

https://apexapps.oracle.com/pls/apex/f?p=44785:24:::NO:24:P24_CONTENT_ID:16833