277 UTL_SPADV

UTL_SPADVパッケージは、Oracle Streamsパッケージ・セットの1つであり、分散データベース環境におけるOracle Streamsコンポーネントの統計を収集して分析するためのサブプログラムを提供しています。このパッケージでは、統計の収集にOracle Streamsパフォーマンス・アドバイザを使用します。

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

参照:

このパッケージおよびOracle Streamsパフォーマンス・アドバイザの詳細は、『Oracle Streams概要および管理』を参照してください。

277.1 UTL_SPADVの概要

このパッケージを使用すると、パフォーマンスまたはOracle Streamsコンポーネントに関する統計を収集および分析できます。統計をオンデマンドで収集するか、またはOracle Streamsのパフォーマンスを継続的に監視する監視ジョブを作成することができます。

このパッケージをOracle Database 11gリリース2 (11.2)データベースで使用すると、Oracle Database 10gリリース2 (10.2)以上のデータベースを監視できます。リリース10.2より前のデータベースは監視できません。

277.2 DBMS_COMPARISONのセキュリティ・モデル

このパッケージのセキュリティは、選択したユーザーまたはロールにこのパッケージのEXECUTE権限を付与するか、選択したユーザーまたはロールにEXECUTE_CATALOG_ROLEを付与することで制御できます。

パッケージのサブプログラムをストアド・プロシージャ内から実行する場合、そのサブプログラムを実行するユーザーには、パッケージのEXECUTE権限を直接付与する必要があります。ロールを通して付与することはできません。

このパッケージ内のサブプログラムを実行するユーザーが必要な権限を所有するには、Oracle Streams管理者を構成し、このパッケージを使用するときにOracle Streams管理者として接続します。

参照:

Oracle Streams管理者の構成の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。

277.3 UTL_SPADVの操作上のノート

このパッケージを使用するには、Oracle Streams管理者としてOracle Databaseに接続し、ORACLE_HOMErdbms/adminディレクトリでutlspadv.sqlスクリプトを実行する必要があります。

STREAMS$_PA_COMPONENT表

STREAMS$_PA_COMPONENT表は、各データベースのOracle Streamsコンポーネントに関する情報を示します。

表277-1 STREAMS$_PA_COMPONENT表

データ・タイプ NULL 説明

COMPONENT_ID

NUMBER

NOT NULL

Oracle Streamsパフォーマンス・アドバイザによってコンポーネントに割り当てられた識別番号

COMPONENT_NAME

VARCHAR2(194)

コンポーネントの名前

COMPONENT_DB

VARCHAR2(128)

コンポーネントを含むデータベースの名前

COMPONENT_TYPE

VARCHAR2(20)

コンポーネントのタイプ

次のタイプがあります。

  • CAPTURE(取得プロセスの場合)

  • PROPAGATION SENDER(伝播の送信者の場合)

  • PROPAGATION RECEIVER(伝播の受信者の場合)

  • APPLY(適用プロセスの場合)

  • QUEUE(キューの場合)

COMPONENT_CHANGED_TIME

DATE

コンポーネントが最後に変更された日時

STREAMS$_PA_COMPONENT_LINK表

STREAMS$_PA_COMPONENT_LINK表は、Oracle Streamsコンポーネント間での情報の流れ方に関する情報を示します。

表277-2 STREAMS$_PA_COMPONENT_LINK表

データ・タイプ NULL 説明

PATH_ID

NUMBER

NOT NULL

Oracle Streamsパフォーマンス・アドバイザによってパスに割り当てられた識別番号

PATH_KEY

VARCHAR2(4000)

Oracle Streamsパフォーマンス・アドバイザによってパスに割り当てられた一意のキー

SOURCE_COMPONENT_ID

NUMBER

NOT NULL

パスのソース・コンポーネントのID

パスはこのコンポーネントから開始します。

DESTINATION_COMPONENT_ID

NUMBER

NOT NULL

パスの接続先コンポーネントのID

パスはこのコンポーネントで終了します。

POSITION

NUMBER

パスにおけるコンポーネントの位置

STREAMS$_PA_COMPONENT_PROP表

STREAMS$_PA_COMPONENT_PROP表は、Streamsパフォーマンス・アドバイザによる分析に必要な、取得プロセスと適用プロセスに関する情報を示します。

表277-3 STREAMS$_PA_COMPONENT_PROP表

データ・タイプ NULL 説明

COMPONENT_ID

NUMBER

NOT NULL

Oracle Streamsパフォーマンス・アドバイザによってコンポーネントに割り当てられた識別番号

PROP_NAME

VARCHAR2(30)

プロパティ名

取得プロセスの場合、コンポーネントのプロパティは次のとおりです。

  • SOURCE_DATABASE: 取得プロセスによって取得された変更のソース・データベース

  • PARALLELISM: parallelism取得プロセス・パラメータの設定

  • OPTIMIZATION_MODE: 取得プロセスが取得と適用の複合を使用するか(1以上)、使用しないか(0)を示します。

適用プロセスの場合、コンポーネントのプロパティは次のとおりです。

  • SOURCE_DATABASE: 適用プロセスによって適用されたメッセージのソース・データベース

  • PARALLELISM: parallelism適用プロセス・パラメータの設定

  • APPLY_CAPTURED: 適用プロセスが取得したメッセージを適用するか(YES)、永続メッセージを適用するか(NO)

  • MESSAGE_DELIVERY_MODE: 一時的か永続的か

PROP_VALUE

VARCHAR2(30)

プロパティ値

STREAMS$_PA_COMPONENT_STAT表

STREAMS$_PA_COMPONENT_STAT表は、各Oracle Streamsコンポーネントのパフォーマンス統計とセッション統計を示します。

表277-4 STREAMS$_PA_COMPONENT_STAT表

データ・タイプ NULL 説明

ADVISOR_RUN_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザの実行識別番号

ADVISOR_RUN_TIME

DATE

アドバイザの実行IDに対してOracle Streamsパフォーマンス・アドバイザが実行された日時

COMPONENT_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザによってコンポーネントに割り当てられた識別番号

STATISTIC_TIME

DATE

統計が記録された日時

STATISTIC_NAME

VARCHAR2(64)

統計の名前

STATISTIC_VALUE

NUMBER

統計用に記録された値

STATISTIC_UNIT

VARCHAR2(64)

統計の測定単位

SUB_COMPONENT_TYPE

VARCHAR2(64)

サブコンポーネントのタイプ

取得プロセスと適用プロセスのみがサブコンポーネントを保持できます。

取得プロセスでは、次のサブコンポーネント・タイプが使用可能です。

  • LOGMINER READER: 取得プロセスのビルダー・サーバーを示します。

  • LOGMINER PREPARER取得プロセスのプリペアラ・サーバーを示します。

  • LOGMINER BUILDER取得プロセスのリーダー・サーバーを示します。

  • CAPTURE SESSION: 取得プロセス・セッションを示します。

適用プロセスでは、次のサブコンポーネント・タイプが使用可能です。

  • PROPAGATION SENDER+RECEIVER(取得プロセスと適用プロセスの両方が1つのデータベースで実行される、取得プロセスと適用プロセスの複合構成において、取得プロセスから適用プロセスにLCRを直接送信する場合)

  • APPLY READER(適用プロセスのリーダー・サーバーの場合)

  • APPLY COORDINATOR(適用プロセスのコーディネータ・プロセスの場合)

  • APPLY SERVER(適用プロセスのリーダー・サーバーの場合)

SESSION_ID

NUMBER

コンポーネントのセッションの識別番号。セッションに関する情報は、V$SESSIONビューを問い合せてください。

SESSION_SERIAL#

NUMBER

コンポーネントのセッションのセッション・シリアル番号。セッションに関する情報は、V$SESSIONビューを問い合せてください。

STREAMS$_PA_CONTROL表

STREAMS$_PA_CONTROL表は、このパッケージのCOLLECT_STATSプロシージャのパラメータ・セットを示します。これらのパラメータは監視動作を制御します。

表277-5 STREAMS$_PA_CONTROL表

データ・タイプ NULL 説明

ADVISOR_RUN_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザの実行識別番号

ADVISOR_RUN_TIME

DATE

Oracle Streamsパフォーマンス・アドバイザが最後に実行された日時

PARAM_NAME

VARCHAR2(30)

パラメータの名前

PARAM_VALUE

VARCHAR2(4000)

パラメータの値セット

PARAM_UNIT

VARCHAR2(30)

パラメータの単位

STREAMS$_PA_DATABASE表

STREAMS$_PA_DATABASE表は、Oracle Streamsコンポーネントを含む各データベースに関する情報を示します。

表277-6 STREAMS$_PA_DATABASE表

データ・タイプ NULL 説明

GLOBAL_NAME

VARCHAR2(128)

NOT NULL

Oracle Streamsパフォーマンス・アドバイザによって分析されるデータベースのグローバル名

LAST_QUERIED

DATE

パフォーマンス・アドバイザが最後の実行においてデータベース情報の収集に成功した日時

ERROR_NUMBER

NUMBER

データベースへの最後の問合せで発生したエラーのエラー番号

ERROR_MESSAGE

VARCHAR2(4000)

データベースへの最後の問合せで発生したエラーのエラー・メッセージ

STREAMS$_PA_DATABASE_PROP表

STREAMS$_PA_DATABASE_PROP表は、Streamsパフォーマンス・アドバイザによる分析に必要な、Oracle Streamsデータベースのプロパティ情報を示します。

表277-7 STREAMS$_PA_DATABASE_PROP表

データ・タイプ NULL 説明

GLOBAL_NAME

VARCHAR2(128)

NOT NULL

Oracle Streamsパフォーマンス・アドバイザによって分析されるデータベースのグローバル名

PROP_NAME

VARCHAR2(30)

プロパティ名

データベースのプロパティは次のとおりです。

  • VERSION

  • COMPATIBILITY

  • MANAGEMENT_PACK_ACCESS

  • DB_UNIQUE_NAME

PROP_VALUE

VARCHAR2(30)

プロパティ値

STREAMS$_PA_MONITORING表

STREAMS$_PA_MONITORING表は、データベースで実行している各監視ジョブに関する情報を示します。

表277-8 STREAMS$_PA_MONITORING表

データ・タイプ NULL 説明

JOB_NAME

VARCHAR2(30)

NOT NULL

監視ジョブの名前

CLIENT_NAME

VARCHAR2(30)

ジョブを送信したクライアントの名前

関連項目: 監視ジョブのフルネーム

QUERY_USER_NAME

VARCHAR2(30)

監視結果を表示するためにユーザーに付与された権限

SHOW_STATS_TABLE

VARCHAR2(30)

統計を表示するためにSHOW_STATSプロシージャで使用される表の名前

STARTED_TIME

TIMESTAMP

監視ジョブが開始した日時

STOPPED_TIME

TIMESTAMP

監視ジョブが停止した日時

ALTERED_TIME

TIMESTAMP

監視ジョブが最後に変更された日時

STATE

VARCHAR2(30)

監視ジョブの状態(ENABLEDまたはSTOPPED)

STREAMS$_PA_PATH_BOTTLENECK表

STREAMS$_PA_PATH_BOTTLENECK表は、メッセージの流れを遅くしている可能性があるOracle Streamsコンポーネントに関する情報を示します。

表277-9 STREAMS$_PA_PATH_BOTTLENECK表

データ・タイプ NULL 説明

ADVISOR_RUN_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザの実行識別番号

ADVISOR_RUN_TIME

DATE

Oracle Streamsパフォーマンス・アドバイザが最後に実行された日時

ADVISOR_RUN_REASON

VARCHAR2(4000)

ボトルネックの原因

PATH_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザによってパスに割り当てられた識別番号

PATH_KEY

VARCHAR2(4000)

Oracle Streamsパフォーマンス・アドバイザによってパスに割り当てられた一意のキー

COMPONENT_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザによってコンポーネントに割り当てられた識別番号

TOP_SESSION_ID

NUMBER

最上位コンポーネントのセッションID。セッションに関する情報は、V$SESSIONビューを問い合せてください。

TOP_SESSION_SERIAL#

NUMBER

最上位コンポーネントのセッション・シリアル番号。セッションに関する情報は、V$SESSIONビューを問い合せてください。

ACTION_NAME

VARCHAR2(32)

最上位セッションのアクション名

BOTTLENECK_IDENTIFIED

VARCHAR2(30)

ボトルネックが識別されたかどうかを示します。

STREAMS$_PA_PATH_STAT表

STREAMS$_PA_PATH_STAT表は、各ストリーム・パスのパフォーマンス統計情報を示します。

表277-10 STREAMS$_PA_PATH_STAT表

データ・タイプ NULL 説明

ADVISOR_RUN_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザの実行識別番号

ADVISOR_RUN_TIME

DATE

アドバイザの実行IDに対してOracle Streamsパフォーマンス・アドバイザが実行された日時

PATH_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザによってパスに割り当てられた識別番号

PATH_KEY

VARCHAR2(4000)

Oracle Streamsパフォーマンス・アドバイザによってパスに割り当てられた一意のキー

STATISTIC_TIME

DATE

統計が記録された日時

STATISTIC_NAME

VARCHAR2(64)

統計の名前

STATISTIC_VALUE

NUMBER

統計用に記録された値

STATISTIC_UNIT

VARCHAR2(64)

統計の測定単位

STREAMS$_PA_SHOW_COMP_STAT表

STREAMS$_PA_SHOW_COMP_STAT表は、Oracle Streamsコンポーネントの統計情報を示します。

表277-11 STREAMS$_PA_SHOW_COMP_STAT表

データ・タイプ NULL 説明

ADVISOR_RUN_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザの実行識別番号

ADVISOR_RUN_TIME

DATE

Oracle Streamsパフォーマンス・アドバイザが最後に実行された日時

PATH_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザによってパスに割り当てられた識別番号

POSITION

NUMBER

パスにおけるコンポーネントの位置

COMPONENT_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザによってコンポーネントに割り当てられた識別番号

COMPONENT_NAME

VARCHAR2(194)

コンポーネントの名前

COMPONENT_TYPE

VARCHAR2(30)

コンポーネントのタイプ

次のタイプがあります。

  • CAPTURE(取得プロセスの場合)

  • PROPAGATION SENDER(伝播の送信者の場合)

  • PROPAGATION RECEIVER(伝播の受信者の場合)

  • APPLY(適用プロセスの場合)

  • QUEUE(キューの場合)

SUB_COMPONENT_TYPE

VARCHAR2(30)

サブコンポーネントのタイプ

取得プロセスと適用プロセスのみがサブコンポーネントを保持できます。

取得プロセスでは、次のサブコンポーネント・タイプが使用可能です。

  • LOGMINER READER: 取得プロセスのビルダー・サーバーを示します。

  • LOGMINER PREPARER取得プロセスのプリペアラ・サーバーを示します。

  • LOGMINER BUILDER取得プロセスのリーダー・サーバーを示します。

  • CAPTURE SESSION: 取得プロセス・セッションを示します。

適用プロセスでは、次のサブコンポーネント・タイプが使用可能です。

  • PROPAGATION SENDER+RECEIVER(取得プロセスと適用プロセスの両方が1つのデータベースで実行される、取得プロセスと適用プロセスの複合構成において、取得プロセスから適用プロセスにLCRを直接送信する場合)

  • APPLY READER(適用プロセスのリーダー・サーバーの場合)

  • APPLY COORDINATOR(適用プロセスのコーディネータ・プロセスの場合)

  • APPLY SERVER(適用プロセスのリーダー・サーバーの場合)

SESSION_ID

NUMBER

コンポーネントのセッションの識別番号。セッションに関する情報は、V$SESSIONビューを問い合せてください。

SESSION_SERIAL#

NUMBER

コンポーネントのセッションのセッション・シリアル番号。セッションに関する情報は、V$SESSIONビューを問い合せてください。

STATISTIC_ALIAS

VARCHAR2(30)

統計の名前

STATISTIC_NAME

VARCHAR2(128)

統計の名前

STATISTIC_VALUE

NUMBER

統計用に記録された値

STATISTIC_UNIT

VARCHAR2(128)

統計の測定単位

STREAMS$_PA_SHOW_PATH_STAT表

STREAMS$_PA_SHOW_PATH_STAT表は、Oracle Streams構成におけるストリーム・パスの統計情報を示します。監視ジョブは、収集したストリーム・パスの統計情報に対して、この表をデフォルトの表として使用します。

表277-12 STREAMS$_PA_SHOW_PATH_STAT表

データ・タイプ NULL 説明

PATH_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザによってパスに割り当てられた識別番号

ADVISOR_RUN_ID

NUMBER

Oracle Streamsパフォーマンス・アドバイザの実行識別番号

ADVISOR_RUN_TIME

DATE

Oracle Streamsパフォーマンス・アドバイザが最後に実行された日時

SETTING

VARCHAR2(2000)

Oracle Streamsパフォーマンス・アドバイザの実行の設定

STATISTICS

VARCHAR2(4000)

コンポーネントレベルの統計

SESSION_STATISTICS

VARCHAR2(4000)

セッションレベルの統計

OPTIMIZATION

NUMBER

取得と適用の複合による最適化をパスで使用するかどうか。

0(ゼロ)は、取得と適用の複合による最適化をパスで使用しないことを示します。

1は、取得と適用の複合による最適化をパスで使用することを示します。

277.4 UTL_SPADVサブプログラムの要約

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

表277-13 UTL_SPADVパッケージのサブプログラム

サブプログラム 説明

ALTER_MONITORINGプロシージャ

現行ユーザーによって送信された監視ジョブを変更します。

COLLECT_STATSプロシージャ

Oracle Streamsパフォーマンス・アドバイザを使用して、分散データベース環境におけるOracle Streamsのコンポーネントおよびサブコンポーネントに関する統計を収集します。

IS_MONITORINGファンクション

監視ジョブが現在実行中かどうかをチェックします。

SHOW_STATSプロシージャ

COLLECT_STATSプロシージャを使用して収集した統計が含まれる出力を生成します。

SHOW_STATS_HTMLプロシージャ

COLLECT_STATSプロシージャによって収集した統計が含まれる出力を生成します。

START_MONITORINGプロシージャ

監視ジョブを開始します。

STOP_MONITORINGプロシージャ

監視ジョブを停止します。

277.4.1 ALTER_MONITORINGプロシージャ

このプロシージャは、現行ユーザーによって送信された監視ジョブを変更します。

構文

UTL_SPADV.ALTER_MONITORING(
   interval                      IN NUMBER  DEFAULT NULL,
   top_event_threshold           IN NUMBER  DEFAULT NULL,
   bottleneck_idle_threshold     IN NUMBER  DEFAULT NULL,
   bottleneck_flowctrl_threshold IN NUMBER  DEFAULT NULL,
   retention_time                IN NUMBER  DEFAULT NULL);

パラメータ

表277-14 ALTER_MONITORINGプロシージャのパラメータ

パラメータ 説明

interval

各パフォーマンス・アドバイザの実行間隔(秒)。最大値は3600秒です。

NULLの場合、現在の値は変更されません。

top_event_threshold

上位待機イベント統計を収集するかどうかを決定する割合。

このプロシージャで待機イベント統計を収集するには、待機イベントの割合が、このパラメータに指定された値を超える必要があります。たとえば、15を指定した場合は、15%よりも大きい値の待機イベントのみが収集されます。

NULLの場合、現在の値は変更されません。

bottleneck_idle_threshold

Oracle Streamsのコンポーネント・セッションで、そのIDLEの割合に基づくボトルネック分析が可能かどうかを決定する割合。

Oracle Streamsのコンポーネント・セッションでボトルネック分析を可能にするには、IDLEの割合が、このパラメータに指定された値以下である必要があります。たとえば、50を指定した場合は、アイドル状態が時間の50%以下であるコンポーネントのみでボトルネック分析が可能になります。

NULLの場合、現在の値は変更されません。

bottleneck_flowctrl_threshold

Oracle Streamsのコンポーネント・セッションで、そのFLOW CONTROLの割合に基づくボトルネック分析が可能かどうかを決定する割合。

Oracle Streamsのコンポーネント・セッションでボトルネック分析を可能にするには、FLOW CONTROLの割合が、このパラメータに指定された値以下である必要があります。たとえば、50を指定した場合は、フロー制御のための一時停止が時間の50%以下であるコンポーネントのみでボトルネック分析が可能になります。

NULLの場合、現在の値は変更されません。

retention_time

監視結果を保持する時間数

NULLの場合、現在の値は変更されません。

例外

表277-15 ALTER_MONITORINGプロシージャの例外

例外 説明

ORA-20113

アクティブな監視ジョブが見つかりません。

277.4.2 COLLECT_STATSプロシージャ

このプロシージャは、Oracle Streamsパフォーマンス・アドバイザを使用して、分散データベース環境におけるOracle Streamsのコンポーネントおよびサブコンポーネントに関する統計を収集します。

ノート:

このプロシージャはコミットします。

参照:

Oracle Streamsパフォーマンス・アドバイザの詳細は、『Oracle Streams概要および管理』を参照してください。

構文

UTL_SPADV.COLLECT_STATS(
   interval                      IN NUMBER  DEFAULT 60,
   num_runs                      IN NUMBER  DEFAULT 10,
   comp_stat_table             IN VARCHAR2  DEFAULT 'STREAMS$_ADVISOR_COMP_STAT',
   path_stat_table             IN VARCHAR2  DEFAULT 'STREAMS$_ADVISOR_PATH_STAT',
   top_event_threshold           IN NUMBER  DEFAULT 15,
   bottleneck_idle_threshold     IN NUMBER  DEFAULT 50,
   bottleneck_flowctrl_threshold IN NUMBER  DEFAULT 50);

パラメータ

表277-16 COLLECT_STATSプロシージャのパラメータ

パラメータ 説明

interval

各パフォーマンス・アドバイザの実行間隔(秒)。最大値は3600秒です。

num_runs

このプロシージャによってOracle Streamsパフォーマンス・アドバイザが実行される回数。

comp_stat_table

Oracle Streamsのコンポーネントおよびサブコンポーネントに関して収集した統計を格納する表の名前。表の名前を[schema_name.]object_nameの形式で指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

このプロシージャは、指定された表が存在しない場合、その表を作成します。

デフォルトの表であるSTREAMS$_ADVISOR_COMP_STATを使用することをお薦めします。

このパラメータの詳細は、「使用上のノート」を参照してください。

path_stat_table

ストリーム・パスに関して収集した統計を格納する表の名前。表の名前を[schema_name.]object_nameの形式で指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

このプロシージャは、指定された表が存在しない場合、その表を作成します。

デフォルトの表であるSTREAMS$_ADVISOR_PATH_STATを使用することをお薦めします。

このパラメータの詳細は、「使用上のノート」を参照してください。

top_event_threshold

上位待機イベント統計を収集するかどうかを決定する割合。

このプロシージャで待機イベント統計を収集するには、待機イベントの割合が、このパラメータに指定された値を超える必要があります。たとえば、15を指定した場合は、15%よりも大きい値の待機イベントのみが収集されます。

bottleneck_idle_threshold

Oracle Streamsのコンポーネント・セッションで、そのIDLEの割合に基づくボトルネック分析が可能かどうかを決定する割合。

Oracle Streamsのコンポーネント・セッションでボトルネック分析を可能にするには、IDLEの割合が、このパラメータに指定された値以下である必要があります。たとえば、50を指定した場合は、アイドル状態が時間の50%以下であるコンポーネントのみでボトルネック分析が可能になります。

bottleneck_flowctrl_threshold

Oracle Streamsのコンポーネント・セッションで、そのFLOW CONTROLの割合に基づくボトルネック分析が可能かどうかを決定する割合。

Oracle Streamsのコンポーネント・セッションでボトルネック分析を可能にするには、FLOW CONTROLの割合が、このパラメータに指定された値以下である必要があります。たとえば、50を指定した場合は、フロー制御のための一時停止が時間の50%以下であるコンポーネントのみでボトルネック分析が可能になります。

使用上のノート

path_stat_tableパラメータで指定した表には、ストリーム・パス統計が格納されます。この表では、comp_stat_tableパラメータで指定した表に格納されているコンポーネントとサブコンポーネントの統計も連結されます。このパッケージのSHOW_STATSプロシージャでは、path_stat_tableパラメータで指定した表に格納されている統計のみが表示されます。

277.4.3 IS_MONITORINGファンクション

このファンクションは、監視ジョブが現在実行中かどうかをチェックします。監視ジョブが実行中の場合はTRUEを戻し、実行中でない場合はFALSEを戻します。

監視ジョブは、START_MONITORINGプロシージャを使用して送信されます。

構文

UTL_SPADV.IS_MONITORING(
   job_name    IN VARCHAR2  DEFAULT 'STREAMS$_MONITORING_JOB',
   client_name IN VARCHAR2  DEFAULT NULL) 
RETURN BOOLEAN;

パラメータ

表277-17 IS_MONITORINGファンクションのパラメータ

パラメータ 説明

job_name

チェックするジョブの名前

client_name

ジョブを送信したクライアントの名前

277.4.4 SHOW_STATSプロシージャ

このプロシージャは、COLLECT_STATSおよびSTART_MONITORINGプロシージャで収集した統計を含む出力を生成します。

出力は、分析用にスプレッドシートにインポートできる形式に構成されます。

ノート:

このプロシージャはコミットしません。

参照:

構文

UTL_SPADV.SHOW_STATS(
   path_stat_table IN VARCHAR2  DEFAULT 'STREAMS$_ADVISOR_PATH_STAT',
   path_id           IN NUMBER    DEFAULT NULL,
   bgn_run_id        IN NUMBER    DEFAULT -1,
   end_run_id        IN NUMBER    DEFAULT -10,
   show_path_id      IN BOOLEAN   DEFAULT TRUE,
   show_run_id       IN BOOLEAN   DEFAULT TRUE,
   show_run_time     IN BOOLEAN   DEFAULT TRUE,
   show_optimization IN BOOLEAN   DEFAULT TRUE,
   show_setting      IN BOOLEAN   DEFAULT FALSE,
   show_stat         IN BOOLEAN   DEFAULT TRUE,
   show_sess         IN BOOLEAN   DEFAULT FALSE,
   show_legend       IN BOOLEAN   DEFAULT TRUE);

パラメータ

表277-18 SHOW_STATSプロシージャのパラメータ

パラメータ 説明

path_stat_table

ストリーム・パス統計が含まれている表の名前。表の名前を[schema_name.]object_nameの形式で指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

COLLECT_STATSプロシージャを使用して統計を収集する場合は、COLLECT_STATSプロシージャのpath_stat_tableパラメータでこの表を指定します。デフォルトの表は、STREAMS$_ADVISOR_PATH_STATです。

START_MONITORINGプロシージャを使用して統計を収集する場合は、STREAMS$_PA_MONITORINGビューのSHOW_STATS_TABLE列を問い合せると、この表の名前を特定できます。監視ジョブのデフォルトの表は、STREAMS$_PA_SHOW_PATH_STATです。

path_id

ストリーム・パスのID。

NULL以外に設定すると、指定したストリーム・パスのみの出力が表示されます。

NULLに設定すると、すべてのアクティブなストリーム・パスの出力が表示されます。

bgn_run_id

実行の範囲で表示する場合のOracle Streamsパフォーマンス・アドバイザの最初の実行ID。

このパラメータの詳細は、「使用上のノート」を参照してください。

end_run_id

実行の範囲で表示する場合のOracle Streamsパフォーマンス・アドバイザの最後の実行ID。

このパラメータの詳細は、「使用上のノート」を参照してください。

show_path_id

TRUEに設定すると、各ストリーム・パスのパスIDが出力に含まれます。

FALSEに設定すると、各ストリーム・パスのパスIDは出力に含まれません。

show_run_id

TRUEに設定すると、Oracle Streamsパフォーマンス・アドバイザの実行IDが出力に含まれます。

FALSEに設定すると、Oracle Streamsパフォーマンス・アドバイザの実行IDは出力に含まれません。

show_run_time

TRUEに設定すると、Oracle Streamsパフォーマンス・アドバイザの実行時間が出力に含まれます。

FALSEに設定すると、Oracle Streamsパフォーマンス・アドバイザの実行時間は出力に含まれません。

show_optimization

TRUEに設定すると、取得と適用の複合による最適化に関連する情報がパスの出力に含まれます。

FALSEに設定すると、取得と適用の複合による最適化に関連する情報はパスの出力に含まれません。

show_setting

TRUEに設定すると、しきい値パラメータの設定が出力に含まれます。しきい値パラメータとは、COLLECT_STATSプロシージャのtop_event_thresholdbottleneck_idle_thresholdおよびbottleneck_flowctrl_thresholdパラメータです。

FALSEに設定すると、しきい値パラメータの設定は出力に含まれません。

show_stat

TRUEに設定すると、コンポーネントレベルおよびサブコンポーネントレベルの統計が出力に含まれます。この場合のコンポーネントには、取得プロセス、キュー、伝播の送信者、伝播の受信者、適用プロセスがあります。サブコンポーネントとは、取得プロセスと適用プロセスのサブコンポーネントです。

FALSEに設定すると、コンポーネントレベルおよびサブコンポーネントレベルの統計は出力に含まれません。

show_sess

TRUEに設定すると、セッションレベルの統計が出力に含まれます。セッションレベルの統計には、IDLE統計、FLOW CONTROL統計およびEVENT統計があります。

FALSEに設定すると、セッションレベルの統計は出力に含まれません。

show_legend

TRUEに設定すると、凡例が出力に含まれます。凡例は、出力で使用される略語を説明します。

FALSEに設定すると、凡例は出力に含まれません。

使用上のノート

表示するOracle Streamsパフォーマンス・アドバイザの実行の範囲を指定するには、bgn_run_idend_run_idの両方を使用してください。正の値を指定すると、先の実行から順に統計が表示されます。負の値を指定すると、後の実行からさかのぼって統計が表示されます。

たとえば、bgn_run_id1に設定し、end_run_id10に設定すると、最初の10個のOracle Streamsパフォーマンス・アドバイザの実行の統計が表示されます。

一方、bgn_run_id-1に設定し、end_run_id-10に設定すると、最後の10個のOracle Streamsパフォーマンス・アドバイザの実行の統計が表示されます。

参照:

取得と適用の複合による最適化の詳細は、『Oracle Streams概要および管理』を参照してください。

277.4.5 SHOW_STATS_HTMLプロシージャ

このプロシージャは、COLLECT_STATSおよびSTART_MONITORINGプロシージャによって収集された統計を含むHTML出力を生成します。

ノート:

このプロシージャはコミットしません。

参照:

構文

UTL_SPADV.SHOW_STATS_HTML(
   directory       IN VARCHAR2,
   reportname      IN VARCHAR2  DEFAULT 'SPADVREPORT.HTML',
   comp_stat_table IN VARCHAR2  DEFAULT 'STREAMS$_ADVISOR_COMP_STAT',
   path_id         IN NUMBER    DEFAULT NULL,
   bgn_run_id      IN NUMBER    DEFAULT -1,
   end_run_id      IN NUMBER    DEFAULT -10,
   detailed        IN BOOLEAN   DEFAULT TRUE);

パラメータ

表277-19 SHOW_STATS_HTMLプロシージャのパラメータ

パラメータ 説明

directory

生成されたHTMLレポートが保存されるローカル・コンピュータ・システムのディレクトリのディレクトリ・オブジェクト

指定したディレクトリ・オブジェクトは、SQL文のCREATE DIRECTORYを使用して作成する必要があります。このプロシージャを起動するユーザーには、それぞれのディレクトリ・オブジェクトに対するREAD権限およびWRITE権限が必要です。

reportname

HTMLレポートの名前

comp_stat_table

Oracle Streamsのコンポーネントおよびサブコンポーネントに関して収集した統計を格納する表の名前。表の名前を[schema_name.]object_nameの形式で指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

COLLECT_STATSプロシージャを使用して統計を収集するとき、COLLECT_STATSプロシージャのcomp_stat_tableパラメータでこの表を指定します。デフォルトの表は、STREAMS$_ADVISOR_COMP_STATです。

START_MONITORINGプロシージャを使用して統計を収集する場合は、STREAMS$_PA_MONITORINGビューのSHOW_STATS_TABLE列を問い合せると、この表の名前を特定できます。監視ジョブのデフォルトの表は、STREAMS$_PA_SHOW_PATH_STATです。

このパッケージのSTART_MONITORINGプロシージャで監視ジョブを開始し、適切なSTREAMS$_PA_SHOW_PATH_STAT表を使用することをお薦めします。

path_id

ストリーム・パスのID。

NULL以外に設定すると、指定したストリーム・パスのみの出力が表示されます。

NULLに設定すると、すべてのアクティブなストリーム・パスの出力が表示されます。

bgn_run_id

実行の範囲で表示する場合のOracle Streamsパフォーマンス・アドバイザの最初の実行ID。

このパラメータの詳細は、「使用上のノート」を参照してください。

end_run_id

実行の範囲で表示する場合のOracle Streamsパフォーマンス・アドバイザの最後の実行ID。

このパラメータの詳細は、「使用上のノート」を参照してください。

detailed

TRUEの場合は、コンポーネント・レベルの統計が生成されます。

FALSEの場合、コンポーネント・レベルの統計は生成されません。

使用上のノート

表示するOracle Streamsパフォーマンス・アドバイザの実行の範囲を指定するには、bgn_run_idend_run_idの両方を使用してください。正の値を指定すると、先の実行から順に統計が表示されます。負の値を指定すると、後の実行からさかのぼって統計が表示されます。

たとえば、bgn_run_id1に設定し、end_run_id10に設定すると、最初の10個のOracle Streamsパフォーマンス・アドバイザの実行の統計が表示されます。

一方、bgn_run_id-1に設定し、end_run_id-10に設定すると、最後の10個のOracle Streamsパフォーマンス・アドバイザの実行の統計が表示されます。

277.4.6 START_MONITORINGプロシージャ

このプロシージャは、監視ジョブを開始します。

このプロシージャは、COLLECT_STATSプロシージャを実行して、分散データベース環境におけるOracle Streamsのコンポーネントおよびサブコンポーネントに関する統計情報を収集します。

ノート:

このプロシージャはコミットします。

参照:

構文

UTL_SPADV.START_MONITORING(
   job_name                      IN VARCHAR2  DEFAULT 'STREAMS$_MONITORING_JOB',
   client_name                   IN VARCHAR2  DEFAULT NULL,
   query_user_name               IN VARCHAR2  DEFAULT NULL,
   interval                      IN NUMBER    DEFAULT 60,
   top_event_threshold           IN NUMBER    DEFAULT 15,
   bottleneck_idle_threshold     IN NUMBER    DEFAULT 50,
   bottleneck_flowctrl_threshold IN NUMBER    DEFAULT 50,
   retention_time                IN NUMBER    DEFAULT 24);

パラメータ

表277-20 START_MONITORINGプロシージャのパラメータ

パラメータ 説明

job_name

作成する監視ジョブの名前

client_name

クライアントの名前

query_user_name

結果の表を問い合せるユーザー

このプロシージャは、特定のユーザーに権限を付与して、結果の表を問い合せることができるようにします。

interval

各パフォーマンス・アドバイザの実行間隔(秒)。最大値は3600秒です。

指定した時間間隔は、COLLECT_STATSプロシージャのintervalパラメータで使用されます。

top_event_threshold

上位待機イベント統計を収集するかどうかを決定する割合。

このプロシージャで待機イベント統計を収集するには、待機イベントの割合が、このパラメータに指定された値を超える必要があります。たとえば、15を指定した場合は、15%よりも大きい値の待機イベントのみが収集されます。

bottleneck_idle_threshold

Oracle Streamsのコンポーネント・セッションで、そのIDLEの割合に基づくボトルネック分析が可能かどうかを決定する割合。

Oracle Streamsのコンポーネント・セッションでボトルネック分析を可能にするには、IDLEの割合が、このパラメータに指定された値以下である必要があります。たとえば、50を指定した場合は、アイドル状態が時間の50%以下であるコンポーネントのみでボトルネック分析が可能になります。

bottleneck_flowctrl_threshold

Oracle Streamsのコンポーネント・セッションで、そのFLOW CONTROLの割合に基づくボトルネック分析が可能かどうかを決定する割合。

Oracle Streamsのコンポーネント・セッションでボトルネック分析を可能にするには、FLOW CONTROLの割合が、このパラメータに指定された値以下である必要があります。たとえば、50を指定した場合は、フロー制御のための一時停止が時間の50%以下であるコンポーネントのみでボトルネック分析が可能になります。

retention_time

監視結果を保持する時間数

例外

表277-21 START_MONITORINGプロシージャの例外

例外 説明

ORA-20111

EM監視ジョブがアクティブなため監視を開始できません。

Oracle Enterprise Manager(EM)監視ジョブを停止して、START_MONITORINGプロシージャを再実行してください。

ORA-20112

Streams監視ジョブがアクティブなため監視を開始できません。

Streams監視ジョブを停止して、START_MONITORINGプロシージャを再実行してください。

使用上のノート

次の項では、START_MONITORINGプロシージャの使用上のノートについて説明します。

プロシージャを実行するためのユーザー要件

START_MONITORINGプロシージャを実行するユーザーは、次の要件を満たす必要があります。

  • ユーザーは、Oracle Streamsコンポーネントを含む各データベースへのデータベース・リンクにアクセスできる必要があります。

  • ユーザーは、DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGEプロシージャを使用して権限が付与されている必要があります。各データベース・リンクは、DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGEプロシージャを使用して権限が付与されているリモート・データベースのユーザーに接続する必要があります。

監視ジョブのフルネーム

監視ジョブを送信するときに、クライアント名とジョブ名が連結され監視ジョブのフルネームが形成されます。START_MONITORINGプロシージャを実行する際に、client_nameパラメータでクライアント名を指定し、job_nameパラメータでジョブ名を指定します。Oracle Enterprise Managerによって発行される監視ジョブのクライアント名は常にEMになります。

次の表は、監視ジョブのフルネームの例を示しています。

client_nameパラメータの設定 job_nameパラメータの設定 監視ジョブのフルネーム

NULL

STREAMS$_MONITORING_JOB

STREAMS$_MONITORING_JOB

EM

STREAMS$_MONITORING_JOB

EMSTREAMS$_MONITORING_JOB

strm

STREAMS$_MONITORING_JOB

strmSTREAMS$_MONITORING_JOB

strm

mjob1

strmmjob1

監視ジョブに対する制限

監視ジョブには、次の制限事項が適用されます。

  • 監視ジョブのフルネームの長さは最大30バイトです。

  • 2つの監視ジョブが異なるスキーマによって送信された場合でも、それらに同じフルネームを指定することはできません。名前のチェックでは、大文字と小文字は区別されません。たとえば、strmSTREAMS$_MONITORING_JOBSTRMSTREAMS$_MONITORING_JOBは、同じ名前とみなされます。

  • Oracle Enterprise Managerは、各データベースに対して最大で1つの監視ジョブのみを持つことができます。

  • 各スキーマは、最大で1つの監視ジョブのみを持つことができます。

277.4.7 STOP_MONITORINGプロシージャ

このプロシージャは、現行ユーザーによって送信された監視ジョブを停止します。

構文

UTL_SPADV.STOP_MONITORING(
   purge IN BOOLEAN  DEFAULT FALSE);

パラメータ

表277-22 STOP_MONITORINGプロシージャのパラメータ

パラメータ 説明

purge

TRUEの場合は、監視ジョブの情報を結果の表から削除します。

FALSEの場合は、監視ジョブの情報を結果の表に保持します。