117 DBMS_PERF

DBMS_PERFパッケージでは、データベース・パフォーマンスを監視するためのアクティブ・レポートを生成するインタフェースを提供します。

参照:

PL/SQLでのSQLインジェクションの回避の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。

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

117.1 DBMS_PERFの概要

DBMS_PERFパッケージでは、データベース・パフォーマンス・レポートを生成するためのインタフェースを提供します。すべてのサブプログラムはアクティブ・レポートを戻します。これらのレポートは、システム・レベル、セッション・レベルまたはSQLレベルで生成できます。

117.2 DBMS_PERFのセキュリティ・モデル

DBMS_PERFパッケージでは、DBAロールが必要です。

117.3 DBMS_PERFサブプログラムの要約

この表は、DBMS_PERFサブプログラムを示し、簡単に説明しています。

表117-1 DBMS_PERFパッケージのサブプログラム

サブプログラム 説明

REPORT_PERFHUBファンクション

指定した期間のデータベース・システム全体のコンポジット・アクティブ・パフォーマンス・レポートを生成します。

REPORT_SESSIONファンクション

セッションがinst_idsidおよびserial_numで識別される特定のデータベース・セッションのパフォーマンス・レポートを生成します。

REPORT_SQLファンクション

sql_idで識別される特定のSQL文のアクティブ・パフォーマンス・レポートを生成します。

117.3.1 REPORT_PERFHUBファンクション

このファンクションは、指定した期間のデータベース・システム全体のコンポジット・アクティブ・パフォーマンス・レポートを生成します。

構文

DBMS_PERF.REPORT_PERFHUB (
   is_realtime          IN NUMBER   DEFAULT NULL,
   outer_start_time     IN DATE     DEFAULT NULL,
   outer_end_time       IN DATE     DEFAULT NULL,
   selected_start_time  IN DATE     DEFAULT NULL,
   selected_end_time    IN DATE     DEFAULT NULL,
   inst_id              IN NUMBER   DEFAULT NULL,
   dbid                 IN NUMBER   DEFAULT NULL,
   monitor_list_detail  IN NUMBER   DEFAULT NULL,
   workload_sql_detail  IN NUMBER   DEFAULT NULL,
   addm_task_detail     IN NUMBER   DEFAULT NULL,
   report_reference     IN VARCHAR2 DEFAULT NULL,
   report_level         IN VARCHAR2 DEFAULT NULL,
   type                 IN VARCHAR2 DEFAULT 'ACTIVE',
   base_path            IN VARCHAR2 DEFAULT NULL);
 RETURN CLOB;

パラメータ

表117-2 REPORT_PERFHUBファンクションのパラメータ

パラメータ 説明

is_realtime

1の場合、リアルタイム・モードです。NULL (デフォルト)または0の場合、履歴モードです。

outer_start_time

時間セレクタで示した範囲外の期間の開始時間。NULL (デフォルト)の場合、次のようになります。

  • is_realtime=0 (履歴)の場合、outer_end_timeより24時間前の時間になります。

  • is_realtime=1 (リアルタイム・モード)の場合、outer_end_timeより1時間前の時間になります。

outer_end_time

時間セレクタで示した範囲外の期間の終了時間。NULL (デフォルト)の場合、最新のAWRスナップショットになります。

  • is_realtime=0 (履歴)の場合、最新のAWRスナップショットになります。

  • is_realtime=1 (リアルタイム・モード)の場合、これが現在時間になります(入力は無視されます)。

selected_start_time

選択した開始時間。NULL (デフォルト)の場合、次のようになります。

  • is_realtime=0の場合、selected_end_timeより1時間前の時間になります。

  • is_realtime=1の場合、selected_end_timeより5分前の時間になります。

selected_end_time

選択した終了時間。NULL (デフォルト)の場合、次のようになります。

  • is_realtime=0の場合、最新のAWRスナップショットになります。

  • is_realtime=1の場合、これが現在時間になります。

inst_id

データを取得するためのインスタンスID。

  • -1の場合、現在のインスタンスが対象となります。

  • 番号を指定した場合、その番号のインスタンスが対象となります。

  • NULL (デフォルト)の場合、すべてのインスタンスが対象となります。

dbid

問合せ対象のDBID

  • NULLの場合、現在のDBIDが対象となります。

  • is_realtime=1の場合、DBIDはローカルのDBIDである必要があります。

monitor_list_detail

SQL監視リストの上位N個のSQ監視詳細を取得します。

  • NULL (デフォルト)の場合、上位10個を取得します。

  • 0の場合、監視リストの詳細は取得しません。

workload_sql_detail

ワークロードSQLリストの上位N個の監視詳細を取得します。

  • NULL (デフォルト)の場合、上位10個を取得します。

  • 0の場合、監視リストの詳細は取得しません。

addm_task_detail

最新のADDMタスクの最大N個のタスクを取得します。

  • NULL (デフォルト)の場合、少なくともN個以下の使用可能なデータを取得します。

  • 0の場合、ADDMタスク詳細は取得しません。

report_reference

SQL*Plusから使用する場合、NULLを指定する必要があります。

report_level

'typical'を指定すると、パフォーマンス・ハブのすべてのタブを取得します。

type

レポート・タイプ。

  • 'ACTIVE' (デフォルト)

  • 'xml'を指定すると、XMLを戻します。

base_path

フレックスHTMLでは外部ファイルにアクセスする要があるため、HTMLリソースのURLパスを指定します。これはtype='ACTIVE'の場合にのみ有効で、通常は使用しません。デフォルト値を指定すると、OTNから必要なファイルを取得します。

使用上の注意

  • 期間を選択すると、パフォーマンス情報がパフォーマンス・サブジェクト・エリアに基づいて収集および表示されます。

  • 期間は、リアルタイムまたは履歴のいずれかです。

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

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

  • is_real-timeが1(リアルタイム・モード)または0(履歴モード)のどちらであるかによって、パフォーマンス・ハブで使用可能なタブが異なります。

117.3.2 REPORT_SESSIONファンクション

このファンクションは、セッションがinst_idsidおよびserial_numで識別される特定のデータベース・セッションのパフォーマンス・レポートを作成します。

これらのパラメータのいずれかが欠落している場合、現在のセッションのレポートが作成されます。

セッション・レベルのパフォーマンス・レポートには、次のタブが含まれています。

  • サマリー: このタブには、キー識別子、セッションの属性およびアクティビティ・データのサマリーが含まれています。また、リアルタイムSQL監視によって監視されたセッションで実行されたSQL、PLSQLブロックおよびデータベース操作(DBOP)のリストが含まれています。

  • アクティビティ: このタブでは、このセッションの待機クラスによって分類されるアクティビティが示されます。このチャートで使用されるデータはアクティブ・セッション履歴(ASH)から取得されます。

  • メトリック: このタブでは、長期間にわたる、選択したセッションの特定のキー・メトリックのチャートが示され、履歴モードでのみ使用可能です。示されるメトリックとして、CPU使用率、PGA使用率、IOスループットおよびIOリクエストがあります。

構文

DBMS_PERF.REPORT_SESSION (
    inst_id              IN NUMBER   DEFAULT NULL,
    sid                  IN NUMBER   DEFAULT NULL,
    serial               IN NUMBER   DEFAULT NULL,
    is_realtime          IN NUMBER   DEFAULT NULL,
    outer_start_time     IN DATE     DEFAULT NULL,
    outer_end_time       IN DATE     DEFAULT NULL,
    selected_start_time  IN DATE     DEFAULT NULL,
    selected_end_time    IN DATE     DEFAULT NULL,
    dbid                 IN NUMBER   DEFAULT NULL,
    monitor_list_detail  IN NUMBER   DEFAULT NULL,
    report_reference     IN VARCHAR2 DEFAULT NULL,
    report_level         IN VARCHAR2 DEFAULT NULL,
    type                 IN VARCHAR2 DEFAULT 'ACTIVE',
    base_path            IN VARCHAR2 DEFAULT NULL)
  RETURN CLOB;

パラメータ

表117-3 REPORT_SESSIONファンクションのパラメータ

パラメータ 説明

inst_id

データを取得するためのインスタンスID。NULL (デフォルト)の場合、現在のセッションのインスタンスが対象となります。

sid

パフォーマンスを取得するためのセッションID。NULLの場合、現在のセッションが使用されます。

serial

セッションのシリアル番号。NULLの場合、セッションが接続されていれば、指定したsidのシリアル番号が使用されます。

is_realtime

1の場合、リアルタイム・モードです。NULL (デフォルト)または0の場合、履歴モードです。

outer_start_time

時間セレクタで示した範囲外の期間の開始時間。NULL (デフォルト)の場合、次のようになります。

  • is_realtime=0 (履歴)の場合、outer_end_timeより24時間前の時間になります。

  • is_realtime=1 (リアルタイム・モード)の場合、outer_end_timeより1時間前の時間になります。

outer_end_time

時間セレクタで示した範囲外の期間の終了時間。NULL (デフォルト)の場合、最新のAWRスナップショットになります。

  • is_realtime=0 (履歴)の場合、最新のAWRスナップショットになります。

  • is_realtime=1 (リアルタイム・モード)の場合、これが現在時間になります(入力は無視されます)。

selected_start_time

選択した開始時間。NULL (デフォルト)の場合、次のようになります。

  • is_realtime=0の場合、selected_end_timeより1時間前の時間になります。

  • is_realtime=1の場合、selected_end_timeより5分前の時間になります。

selected_end_time

選択した終了時間。NULL (デフォルト)の場合、次のようになります。

  • is_realtime=0の場合、最新のAWRスナップショットになります。

  • is_realtime=1の場合、これが現在時間になります。

dbid

問合せ対象のDBID

  • NULLの場合、現在のDBIDが対象となります。

  • is_realtime=1の場合、DBIDはローカルのDBIDである必要があります。

monitor_list_detail

SQL監視リストの上位N個のSQ監視詳細を取得します。

  • NULL (デフォルト)の場合、上位10個を取得します。

  • 0の場合、監視リストの詳細は取得しません。

report_reference

SQL*Plusから使用する場合、NULLを指定する必要があります。

report_level

'typical'を指定すると、セッション・ハブ(セッション詳細)のすべてのタブを取得します。

type

レポート・タイプ。

  • 'ACTIVE' (デフォルト)

  • 'xml'を指定すると、XMLを戻します。

base_path

フレックスHTMLでは外部ファイルにアクセスする要があるため、HTMLリソースのURLパスを指定します。

117.3.3 REPORT_SQLファンクション

このファンクションでは、sql_idで識別される特定のSQL文のアクティブ・パフォーマンス・レポートを生成します。

SQLレベルのパフォーマンス・レポートには、次のタブが含まれています。

  • サマリー: このタブには、SQLテキスト、ユーザー名、これを実行しているセッションおよび関連情報などのキー属性を持つSQL文の概要が含まれています。また、これには「計画」タブも含まれ、メモリーやAWRにあるSQL文の個別の計画ごとに統計情報およびアクティビティが表示されます。

  • アクティビティ: このタブでは、このSQL文の待機クラスによって分類されるアクティビティが表示されます。このチャートで使用されるデータはアクティブ・セッション履歴(ASH)から取得されます。

  • 実行統計: このタブには、この文の個別の計画ごとの統計情報とアクティビティ、およびその計画がグラフィカルな表形式で表示されます。

  • 監視対象SQL: リアルタイムSQL監視によって監視されたSQL文のすべての実行がこのタブにリストされます。

  • 計画管理: このタブには、SQL文に対するSQLプロファイルおよびSQL計画ベースラインが存在する場合、これらに関する情報が表示されます。

  • 統計の履歴: このタブは履歴モードでのみ使用可能です。これには、異なる実行計画について、長期間にわたって作成された、実行数、I/O回数、処理済の行やその他の情報などの統計情報が含まれています。この情報はAWRから取得されます。

構文

DBMS_PERF.REPORT_SQL (
    sql_id               IN varchar2 default null,
    is_realtime          IN number   default null,
    outer_start_time     IN date     default null,
    outer_end_time       IN date     default null,
    selected_start_time  IN date     default null,
    selected_end_time    IN date     default null,
    inst_id              IN number   default null,
    dbid                 IN number   default null,
    monitor_list_detail  IN number   default null,
    report_reference     IN varchar2 default null,
    report_level         IN varchar2 default null,    type                 IN varchar2 default 'ACTIVE',
    base_path            IN varchar2 default null);
  RETURN CLOB;

パラメータ

表117-4 REPORT_SQLファンクションのパラメータ

パラメータ 説明

sql_id

パフォーマンスを取得するためのSQL_IDNULLの場合、前回実行されたSQL文のSQL詳細。

is_realtime

1の場合、リアルタイム・モードです。NULL (デフォルト)または0の場合、履歴モードです。

outer_start_time

時間セレクタで示した範囲外の期間の開始時間。NULL (デフォルト)の場合、次のようになります。

  • is_realtime=0 (履歴)の場合、outer_end_timeより24時間前の時間になります。

  • is_realtime=1 (リアルタイム・モード)の場合、outer_end_timeより1時間前の時間になります。

outer_end_time

時間セレクタで示した範囲外の期間の終了時間。NULL (デフォルト)の場合、最新のAWRスナップショットになります。

  • is_realtime=0 (履歴)の場合、最新のAWRスナップショットになります。

  • is_realtime=1 (リアルタイム・モード)の場合、これが現在時間になります(入力は無視されます)。

selected_start_time

選択した開始時間。NULL (デフォルト)の場合、次のようになります。

  • is_realtime=0の場合、selected_end_timeより1時間前の時間になります。

  • is_realtime=1の場合、selected_end_timeより5分前の時間になります。

selected_end_time

選択した終了時間。NULL (デフォルト)の場合、次のようになります。

  • is_realtime=0の場合、最新のAWRスナップショットになります。

  • is_realtime=1の場合、これが現在時間になります。

inst_id

データを取得するためのインスタンスID。NULL (デフォルト)の場合、現在のセッションのインスタンスが対象となります。

dbid

問合せ対象のDBID

  • NULLの場合、現在のDBIDが対象となります。

  • is_realtime=1の場合、DBIDはローカルのDBIDである必要があります。

monitor_list_detail

SQL監視リストの上位N個のSQ監視詳細を取得します。

  • NULL (デフォルト)の場合、上位10個を取得します。

  • 0の場合、監視リストの詳細は取得しません。

report_reference

SQL*Plusから使用する場合、NULLを指定する必要があります。

report_level

'typical'を指定すると、パフォーマンス・ハブのすべてのタブを取得します。

type

レポート・タイプ。

  • 'ACTIVE' (デフォルト)

  • 'xml'を指定すると、XMLを戻します。

base_path

フレックスHTMLでは外部ファイルにアクセスする要があるため、HTMLリソースのURLパスを指定します。