Oracle Streamsパフォーマンス・アドバイザは、DBMS_STREAMS_ADVISOR_ADM
PL/SQLパッケージと、データ・ディクショナリ・ビューのコレクションから構成されます。Oracle Streamsパフォーマンス・アドバイザを使用すると、Oracle Streams環境のトポロジおよびパフォーマンスを監視できます。Oracle Streamsのトポロジには、Oracle Streams環境のコンポーネント、コンポーネント間のリンク、取得からコンシュームへの情報フローに関する情報が含まれています。Oracle Streamsパフォーマンス・アドバイザは、Oracle Streamsコンポーネントの実行方法に関する情報も提供します。
次の各項では、Oracle Streamsパフォーマンス・アドバイザについて説明します。
Oracle Streamsを使用すると、複数のデータベース間でメッセージを送信できます。Oracle Streams環境では、次のタイプのメッセージを送信できます。
データベースの変更を含む論理変更レコード(LCR)
ユーザー定義に基づくカスタム情報を含むユーザー・メッセージ
Oracle Streamsのトポロジとは、Oracle Streams環境におけるデータベース、これらのデータベースに構成されたOracle Streamsコンポーネントおよびこれらのコンポーネント間のメッセージ・フローを表したものです。
環境内のメッセージは、別々のストリーム・パスを流れます。ストリーム・パスは、取得プロセス、同期取得、またはアプリケーションがメッセージを生成してこれらをエンキューすると開始します。メッセージは、そのストリーム・パスで1つ以上の伝播およびキューを介して流れます。ストリーム・パスは、メッセージが適用プロセス、メッセージ・クライアントまたはアプリケーションによってデキューされると終了します。
現在、Oracle Streamsのトポロジは、ストリーム・パスが適用プロセスで終了した場合のストリーム・パスに関する情報のみを収集します。Oracle Streamsのトポロジは、メッセージ・クライアントまたはアプリケーションがメッセージをデキューしたときに終了するストリーム・パスを追跡しません。
Oracle Streamsパフォーマンス・アドバイザは、DBMS_STREAMS_ADVISOR_ADM
PL/SQLパッケージと、データ・ディクショナリ・ビューのコレクションから構成されます。DBMS_STREAMS_ADVISOR_ADM
パッケージのANALYZE_CURRENT_PERFORMANCE
プロシージャを使用すると、Oracle Streamsのトポロジに関する情報と、トポロジ内のOracle Streamsコンポーネントのパフォーマンスに関する情報を収集できます。
この項の内容は次のとおりです。
Oracle Streamsパフォーマンス・アドバイザによって情報が収集されたら、次のデータ・ディクショナリ・ビューを問い合せることによって、それらを表示できます。
DBA_STREAMS_TP_COMPONENT
には、各データベースの各Oracle Streamsコンポーネントに関する情報が含まれています。
DBA_STREAMS_TP_COMPONENT_LINK
には、Oracle Streamsコンポーネント間でのメッセージ・フローの方法に関する情報が含まれています。
DBA_STREAMS_TP_COMPONENT_STAT
には、各Oracle Streamsコンポーネントに関する一時的なパフォーマンス統計およびセッション統計が含まれています。
DBA_STREAMS_TP_DATABASE
には、Oracle Streamsコンポーネントを含む各データベースに関する情報が含まれています。
DBA_STREAMS_TP_PATH_BOTTLENECK
には、ストリーム・パスのメッセージ・フローの速度を低下させる可能性のあるOracle Streamsコンポーネントに関する一時的な情報が含まれています。
DBA_STREAMS_TP_PATH_STAT
には、Oracle Streamsのトポロジ内に存在する各ストリーム・パスに関する一時的なパフォーマンス統計が含まれています。
トポロジ情報は、データ・ディクショナリ・ビューDBA_STREAMS_TP_DATABASE
、DBA_STREAMS_TP_COMPONENT
およびDBA_STREAMS_TP_COMPONENT_LINK
に永続的に格納されます。
DBA_STREAMS_TP_COMPONENT_STAT
、DBA_STREAMS_TP_PATH_BOTTLENECK
およびDBA_STREAMS_TP_PATH_STAT
には、一時的な情報が含まれます。これらのビュー内のデータの一部は、ANALYZE_CURRENT_PERFORMANCE
プロシージャを実行するユーザー・セッションのためにのみ保持されます。このユーザー・セッションが終了すると、これらの一時的な情報は消去されます。
DBMS_STREAMS_ADVISOR_ADM
パッケージは、次のOracle Streamsコンポーネントに関する情報を収集します。
QUEUE
は、メッセージを格納します。パッケージは、キューについて、次のコンポーネント・レベルの統計を収集します。
ENQUEUE
RATE
SPILL
RATE
CURRENT
QUEUE
SIZE
CAPTURE
は、取得プロセスです。取得プロセスでは、REDOログにあるデータベース変更を取得し、変更を論理変更レコード(LCR)としてエンキューします。各取得プロセスには、次のサブコンポーネントがあります。
LOGMINER
BUILDER
は、ビルダー・サーバーです。
LOGMINER
PREPARER
は、プリペアラ・サーバーです。
LOGMINER
READER
は、リーダー・サーバーです。
CAPTURE
SESSION
は、取得プロセス・セッションです。
このパッケージは、各取得プロセス(CAPTURE
)について次のコンポーネント・レベル統計を収集します。
CAPTURE
RATE
ENQUEUE
RATE
LATENCY
このパッケージは、取得プロセスのサブコンポーネントについてセッション・レベル統計も収集します。
PROPAGATION
SENDER
は、ソース・キューから宛先キューへメッセージを送信します。このパッケージは、伝播送信者について次のコンポーネント・レベル統計を収集します。
SEND
RATE
BANDWIDTH
LATENCY
このパッケージは、伝播送信者についてセッション・レベル統計も収集します。
PROPAGATION
RECEIVER
は、伝播送信者によって送信されたメッセージを宛先キューにエンキューします。このパッケージは、伝播受信者についてセッション・レベル統計を収集します。
APPLY
は適用プロセスです。これらのコンポーネントは、メッセージを直接適用するか、メッセージを適用ハンドラに送信します。このタイプのコンポーネントには、次のサブコンポーネントがあります。
APPLY
READER
は、リーダー・サーバーです。
APPLY
COORDINATOR
は、コーディネータ・プロセスです。
APPLY
SERVER
は、適用サーバーです。
このパッケージは、このコンポーネント(APPLY
)について次のコンポーネント・レベル統計を収集します。
MESSAGE
APPLY
RATE
TRANSACTION
APPLY
RATE
LATENCY
このパッケージは、サブコンポーネントについてセッション・レベル統計も収集します。
パッケージがコンポーネントまたはサブコンポーネントについてセッション・レベル統計を収集する場合、このセッション・レベル統計には次のものが含まれます。
IDLE
パーセンテージ
FLOW
CONTROL
パーセンテージ
待機イベントのEVENT
パーセンテージ
Oracle Streamsのトポロジのストリーム・パスは、ソースから宛先へのメッセージ・フローのことです。ストリーム・パスは、取得プロセス、同期取得またはアプリケーションがメッセージをキューにエンキューした場所から開始します。ストリーム・パスは、適用プロセスがメッセージをデキューした場所で終了します。ストリーム・パスは、複数のキューと伝播を介して適用プロセスに到達することがあります。したがって、単一のストリーム・パスが最後のコンポーネントに到達するまでに、複数のソース/宛先コンポーネント・ペアが生成される場合があります。
Oracle Streamsのトポロジは、それぞれのパスを簡単に監視できるように、各ストリーム・パスに番号を割り当てます。また、ストリーム・パスの2つの要素間の各リンクにも番号を割り当てます。この番号には、ストリーム・パス全体のリンクの位置が指定されます。
表23-1に、ストリーム・パスの例における各リンクの位置を示します。
表23-1 ストリーム・パスの例と各リンクの位置
始点コンポーネント | 終点コンポーネント | 位置 |
---|---|---|
取得プロセス |
キュー |
1 |
キュー |
伝播送信者 |
2 |
伝播送信者 |
伝播受信者 |
3 |
伝播受信者 |
キュー |
4 |
キュー |
適用プロセス |
5 |
Oracle Streamsパフォーマンス・アドバイザは、Oracle Streams環境に関する情報を収集する際、各適用プロセスから開始して、その始点に戻りながら動作することによって、ストリーム・パスを追跡します。始点が取得プロセスの場合、Oracle Streamsパフォーマンス・アドバイザは、適用プロセスから取得プロセスへとパスを追跡します。メッセージをエンキューする同期取得またはアプリケーションが始点の場合、Oracle Streamsパフォーマンス・アドバイザは、適用プロセスから、メッセージがエンキューされるキューへとパスを追跡します。
次の各項では、レプリケーション環境の例とそれぞれのストリーム・パスについて説明します。
関連項目: Oracle Streamsレプリケーション環境のベスト・プラクティスの詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照 |
2つのデータベースを持つOracle Streams環境を考えてみます。各データベースは、取得プロセスによってレプリケートされたデータベース・オブジェクトに対する変更を取得して、その変更をもう一方のデータベースに送信します。これらの変更は、そこで適用プロセスによって適用されます。この環境におけるストリーム・パスは完全に別々のものです。
図23-1に、このタイプのOracle Streamsレプリケーション環境の例を示します。
Oracle Streamsパフォーマンス・アドバイザは、各Oracle StreamsコンポーネントにコンポーネントIDを割り当て、各パスにパスIDを割り当てます。図23-1のOracle Streamsのトポロジは、次の情報を示しています。
Oracle Streams環境には、12のOracle Streamsコンポーネントがあります。
Oracle Streams環境には、2つのストリーム・パスがあります。
ストリーム・パス1は、コンポーネント1で始まり、コンポーネント6で終了します。
ストリーム・パス2は、コンポーネント7で始まり、コンポーネント12で終了します。
単一ソースによって生成された変更を適用する複数の適用プロセスがある場合は、1つのストリーム・パスが複数のストリーム・パスに分かれます。この場合、ストリーム・パスの一部は共有されますが、パスは2つ以上の異なるストリーム・パスに分かれます。
図23-2は、このタイプのOracle Streams環境を示しています。
図23-2のOracle Streamsのトポロジには、次の情報が示されています。
Oracle Streams環境には、10のOracle Streamsコンポーネントがあります。
Oracle Streams環境には、2つのストリーム・パスがあります。
ストリーム・パス1は、コンポーネント1で始まり、コンポーネント7で終了します。
ストリーム・パス2は、コンポーネント1で始まり、コンポーネント10で終了します。
コンポーネント1とコンポーネント2の間のメッセージ・フローはパス1とパス2の両方にあります。
DBMS_STREAMS_ADVISOR_ADM
パッケージのANALYZE_CURRENT_PERFORMANCE
プロシージャは、Oracle StreamsのトポロジとOracle Streamsコンポーネントのパフォーマンスに関する情報を収集します。このプロシージャは、多数のデータ・ディクショナリ・ビューに情報を格納します。Oracle Streamsパフォーマンス・アドバイザを効果的に使用するには、プロシージャによる情報の収集方法と統計の計算方法を理解することが重要です。
このプロシージャは、Oracle Streams環境のスナップショットを取って、情報を収集し、統計を計算します。統計によっては、単一のスナップショットの情報のみで十分な場合があります。たとえば、キュー内の現在のメッセージ数を判断するために必要なスナップショットは1つのみです。ただし、他の統計を計算するには、2つのスナップショットを比較する必要があります。このような統計には、レート、帯域幅、イベントおよびフロー制御の各統計があります。このような統計を計算するため、ユーザー・セッションでの初回実行時には、2つのスナップショットが取られます。この後は、同じユーザー・セッションで実行するたびに1つのスナップショットを取り、前回の実行時に取得したスナップショットと比較します。
表23-2に、単一のユーザー・セッションでアドバイザが実行されるたびに、どのように情報が収集されるかを示します。
表23-2 Oracle Streamsパフォーマンス・アドバイザによるセッション内での情報の収集方法
アドバイザの実行 | 収集される情報 |
---|---|
1 |
|
2 |
|
3 |
|
アドバイザの実行において最善の結果を得るために、次の基準を満たします。
アドバイザの実行で使用される2つのスナップショットが取られる期間は、できるだけ多くのOracle Streamsコンポーネントを有効化しておいてください。特に、取得プロセス、伝播および適用プロセスを有効化しておく必要があります。また、キューは起動しておく必要があり、データベース・リンクはアクティブである必要があります。
Oracle Streams環境でデータがレプリケートされる場合は、アドバイザの実行で使用される2つのスナップショットが取られる期間に、レプリケートされるデータベース・オブジェクトが、平均的か、または平均に近い頻度で更新されていることを確認します。Oracle Streamsレプリケーション環境のレプリケーション・アクティビティが典型的であるときにOracle Streamsパフォーマンス・アドバイザを実行すると、より正確な統計を収集できます。
メッセージがOracle Streams環境のアプリケーションによって送信される場合は、アドバイザの実行で使用される2つのスナップショットが取られる期間に、そのアプリケーションが、平均的か、または平均に近い頻度でメッセージを送信していることを確認します。Oracle Streamsメッセージング環境で送信されるメッセージ数が平均値であるときにOracle Streamsパフォーマンス・アドバイザを実行すると、より正確な統計を収集できます。
Oracle StreamsのトポロジおよびOracle Streamsパフォーマンスに関する情報を収集するには、次の手順を実行します。
情報の収集に使用するデータベースを指定します。このデータベースの管理ユーザーは、次の要件を満たしている必要があります。
このユーザーには、Oracle Streamsコンポーネントを含む各データベースへのデータベース・リンクに対するアクセス権が必要です。
ユーザーは、DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE
プロシージャを使用して権限が付与されている必要があります。各データベース・リンクは、DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE
プロシージャを使用して権限が付与されているリモート・データベースのユーザーに接続する必要があります。
Oracle Streamsコンポーネントを使用して各データベースでOracle Streams管理者を構成すると、Oracle Streams管理者に必要な権限が割り当てられます。Oracle Streams管理者を作成する方法の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。
ご使用の環境に、これらの要件を満たすデータベースがない場合は、データベースを1つ選択し、必要なデータベース・リンクを構成して、必要な権限をユーザーに付与してから処理を進めてください。
Oracle Database 12c データベースで実行されるOracle Streamsパフォーマンス・アドバイザでは、Oracle Database 10g リリース2(10.2)以上のデータベースを監視できます。Oracle Database 10g リリース2 (10.2)以下のデータベースを監視することはできません。
SQL*Plusでは、手順1で指定したデータベースに、手順1に示される要件を満たすユーザーとして接続します。
たとえば、Oracle Streams管理者としてhub.example.com
に接続します。
SQL*Plusでデータベースに接続する方法については、『Oracle Database管理者ガイド』を参照してください。
DBMS_STREAMS_ADVISOR_ADM
パッケージのANALYZE_CURRENT_PERFORMANCE
プロシージャを実行します。
exec DBMS_STREAMS_ADVISOR_ADM.ANALYZE_CURRENT_PERFORMANCE;
必要に応じて、手順3のプロシージャを実行したセッションと同じセッションで、ANALYZE_CURRENT_PERFORMANCE
プロシージャを複数回再実行します。
exec DBMS_STREAMS_ADVISOR_ADM.ANALYZE_CURRENT_PERFORMANCE;
次の問合せを実行して、手順4で収集された情報に関するアドバイザの実行IDを識別します。
SELECT DISTINCT ADVISOR_RUN_ID FROM DBA_STREAMS_TP_COMPONENT_STAT ORDER BY ADVISOR_RUN_ID;
出力は次のようになります。
ADVISOR_RUN_ID -------------- 1 2
Oracle Streamsパフォーマンス・アドバイザは、アドバイザの実行IDを各実行の統計に割り当てます。Oracle Streamsコンポーネントのパフォーマンス統計の表示の問合せで出力される、最後のアドバイザ実行IDの値を使用します。この例では、問合せのアドバイザ実行IDに対して2
を使用します。
Oracle Streamsパフォーマンス・アドバイザでは、ユーザー・セッションが終了すると、収集したパフォーマンス統計が削除される場合があります。したがって、ANALYZE_CURRENT_PERFORMANCE
プロシージャを実行したセッションと同じセッションで、パフォーマンス統計の問合せを実行します。
Oracle Streams環境の現在のパフォーマンスを監視する必要がある場合は、必ず、これらの手順を完了してください。
ANALYZE_CURRENT_PERFORMANCE
プロシージャは、Oracle Streams環境のいずれかのデータベースに新規Oracle Streamsコンポーネントが追加された場合にも実行する必要があります。このプロシージャを実行すると、新規コンポーネントに関する情報によって、Oracle Streamsのトポロジが更新されます。
関連項目:
|
この項では、Oracle Streamsのトポロジを表示して、Oracle Streamsコンポーネントのパフォーマンスを監視するために使用できるいくつかの問合せについて説明します。これらの問合せは、「Oracle Streamsのトポロジについて」で説明したビューを指定します。
この項の問合せは、任意のOracle Stream環境で実行できます。ただし、問合せで示される出力には、図23-3に示すOracle Streamsレプリケーション環境の例を使用します。
『Oracle Streamsレプリケーション管理者ガイド』には、図23-3で示すOracle Streamsレプリケーション環境を構成するための手順が記載されています。この環境には、次の両方のタイプのストリーム・パスがあります。
spoke1.example.com
データベースからhub.example.com
データベースへ、およびspoke2.example.com
データベースからhub.example.com
データベースへの個別のストリーム・パス・フロー。このタイプのストリーム・パスについては、「Oracle Streams環境における個別のストリーム・パス」を参照してください。
hub.example.com
データベースからspoke1.example.com
およびspoke2.example.com
データベースへのパス・フローの一部を共有する2つのストリーム・パス。このタイプのストリーム・パスについては、「Oracle Streamsレプリケーション環境における共有ストリーム・パス」を参照してください。
この項の内容は次のとおりです。
Oracle Streamsのトポロジを表示するには、まず最初にDBMS_STREAMS_ADVISOR_ADM
パッケージを使用して、Oracle Streams環境に関する情報を収集する必要があります。「Oracle Streamsのトポロジおよびパフォーマンスに関する情報の収集」を参照してください。
次の各項では、Oracle Streamsのトポロジの様々なタイプの情報を表示する方法について説明します。
Oracle Streams環境のデータベースに関する次の情報を表示できます。
各データベースのグローバル名
各データベースでOracle Streamsパフォーマンス・アドバイザが実行された最終時刻
各データベースのバージョン番号
各データベースの互換性レベル
各データベースにOracle Diagnostics PackおよびOracle Tuning Packへのアクセス権があるかどうか
これらの情報を表示するには、次の問合せを実行します。
COLUMN GLOBAL_NAME HEADING 'Global Name' FORMAT A15 COLUMN LAST_QUERIED HEADING 'Last|Queried' COLUMN VERSION HEADING 'Version' FORMAT A15 COLUMN COMPATIBILITY HEADING 'Compatibility' FORMAT A15 COLUMN MANAGEMENT_PACK_ACCESS HEADING 'Management Pack' FORMAT A20 SELECT GLOBAL_NAME, LAST_QUERIED, VERSION, COMPATIBILITY, MANAGEMENT_PACK_ACCESS FROM DBA_STREAMS_TP_DATABASE;
次の出力は、「Oracle Streamsのトポロジの表示とOracle Streamsのパフォーマンスの分析」で説明したOracle Streamsレプリケーション環境のデータベースを示しています。
Last Global Name Queried Version Compatibility Management Pack --------------- --------- --------------- --------------- -------------------- HUB.EXAMPLE.COM 08-APR-08 11.1.0.7.0 11.1.0 DIAGNOSTIC+TUNING SPOKE1.EXAMPLE. 08-APR-08 11.1.0.7.0 11.1.0 DIAGNOSTIC+TUNING COM SPOKE2.EXAMPLE. 08-APR-08 11.1.0.7.0 11.1.0 DIAGNOSTIC+TUNING COM
この出力は、Oracle Streams環境のデータベースに関する次の情報を示しています。
Global
Name
列は、データベースのグローバル名がhub.example.com
、spoke1.example.com
およびspoke2.example.com
であることを示しています。
Last
Queried
列は、 2008年4月8日に、各データベースでOracle Streamsパフォーマンス・アドバイザが最後に実行されたことを示しています。
Version
列は、各データベースのバージョンがOracle Database 11g リリース1 (11.1.0.7.0)であることを示しています。
Compatibility
列は、各データベースの互換性レベルが11.1.0
であることを示しています。
Management
Pack
列は、各データベースに、Oracle Diagnostics PackおよびOracle Tuning Packへのアクセス権があることを示しています。
関連項目: データベースの互換性の詳細は、『Oracle Databaseアップグレード・ガイド』を参照 |
Oracle Streams環境のコンポーネントに関する次の情報を表示できます。
各Oracle StreamsコンポーネントのコンポーネントID。Oracle Streamsのトポロジは、各コンポーネントにID番号を割り当て、この番号を使用してそのコンポーネントに関する情報と、そのコンポーネントを流れるストリーム・パスに関する情報を追跡します。
Oracle Streamsコンポーネントの名前。取得プロセスおよび適用プロセスについては、問合せにより各プロセスの名前がリストされます。キューについては、各キューの名前がリストされます。伝播については、2つのOracle StreamsコンポーネントがOracle Streamsのトポロジで追跡されます。
伝播送信者の名前は、伝播のソース・キューおよびメッセージ送信先の宛先キューとデータベースになります。たとえば、spoke1.example.com
データベースのstrmadmin.destination_spoke1
宛先キューにメッセージを送信するstrmadmin.source_hns
ソース・キューを持つ伝播送信者は、次のように示されます。
"STRMADMIN"."SOURCE_HNS"=>"STRMADMIN"."DESTINATION_SPOKE1" @SPOKE1.EXAMPLE.COM
伝播受信者の名前は、メッセージ送信元のソース・キューとデータベースおよび伝播の宛先キューになります。たとえば、hub.example.com
データベースのstrmadmin.source_hns
ソース・キューからメッセージを受信して、それらをstrmadmin.destination_spoke1
宛先キューにエンキューする伝播受信者は、次のように示されます。
"STRMADMIN"."SOURCE_HNS"@HUB.EXAMPLE.COM=>"STRMADMIN". "DESTINATION_SPOKE1"
Oracle Streamsコンポーネントのタイプ。次のタイプがあります。
CAPTURE
: 取得プロセスを示します。
QUEUE
: キューを示します。
PROPAGATION
SENDER
: 伝播送信者を示します。
PROPAGATION
RECEIVER
: 伝播受信者を示します。
APPLY
: 適用プロセスを示します。
コンポーネントを含むデータベース
これらの情報を表示するには、次の問合せを実行します。
COLUMN COMPONENT_ID HEADING 'ID' FORMAT 999 COLUMN COMPONENT_NAME HEADING 'Name' FORMAT A43 COLUMN COMPONENT_TYPE HEADING 'Type' FORMAT A20 COLUMN COMPONENT_DB HEADING 'Database' FORMAT A10 SELECT COMPONENT_ID, COMPONENT_NAME, COMPONENT_TYPE, COMPONENT_DB FROM DBA_STREAMS_TP_COMPONENT ORDER BY COMPONENT_ID;
次の出力は、「Oracle Streamsのトポロジの表示とOracle Streamsのパフォーマンスの分析」で説明したOracle Streamsレプリケーション環境のコンポーネントを示しています。
ID Name Type Database ---- ------------------------------------------- -------------------- ---------- 1 "STRMADMIN"."DESTINATION_SPOKE1" QUEUE HUB.EXAMPL E.COM 2 "STRMADMIN"."DESTINATION_SPOKE2" QUEUE HUB.EXAMPL E.COM 3 "STRMADMIN"."SOURCE_HNS" QUEUE HUB.EXAMPL E.COM 4 "STRMADMIN"."SOURCE_HNS"=>"STRMADMIN"."DEST PROPAGATION SENDER HUB.EXAMPL INATION_SPOKE1"@SPOKE1.EXAMPLE.COM E.COM 5 "STRMADMIN"."SOURCE_HNS"=>"STRMADMIN"."DEST PROPAGATION SENDER HUB.EXAMPL INATION_SPOKE2"@SPOKE2.EXAMPLE.COM E.COM 6 "STRMADMIN"."SOURCE_HNS"@SPOKE1.EXAMPLE.COM PROPAGATION RECEIVER HUB.EXAMPL =>"STRMADMIN"."DESTINATION_SPOKE1" E.COM 7 "STRMADMIN"."SOURCE_HNS"@SPOKE2.EXAMPLE.COM PROPAGATION RECEIVER HUB.EXAMPL =>"STRMADMIN"."DESTINATION_SPOKE2" E.COM 8 APPLY_SPOKE1 APPLY HUB.EXAMPL E.COM 9 APPLY_SPOKE2 APPLY HUB.EXAMPL E.COM 10 CAPTURE_HNS CAPTURE HUB.EXAMPL E.COM 11 "STRMADMIN"."DESTINATION_SPOKE1" QUEUE SPOKE1.EXA MPLE.COM 12 "STRMADMIN"."SOURCE_HNS" QUEUE SPOKE1.EXA MPLE.COM 13 "STRMADMIN"."SOURCE_HNS"=>"STRMADMIN"."DEST PROPAGATION SENDER SPOKE1.EXA INATION_SPOKE1"@HUB.EXAMPLE.COM MPLE.COM 14 "STRMADMIN"."SOURCE_HNS"@HUB.EXAMPLE.COM=>" PROPAGATION RECEIVER SPOKE1.EXA STRMADMIN"."DESTINATION_SPOKE1" MPLE.COM 15 APPLY_SPOKE1 APPLY SPOKE1.EXA MPLE.COM 16 CAPTURE_HNS CAPTURE SPOKE1.EXA MPLE.COM 17 "STRMADMIN"."DESTINATION_SPOKE2" QUEUE SPOKE2.EXA MPLE.COM 18 "STRMADMIN"."SOURCE_HNS" QUEUE SPOKE2.EXA MPLE.COM 19 "STRMADMIN"."SOURCE_HNS"=>"STRMADMIN"."DEST PROPAGATION SENDER SPOKE2.EXA INATION_SPOKE2"@HUB.EXAMPLE.COM MPLE.COM 20 "STRMADMIN"."SOURCE_HNS"@HUB.EXAMPLE.COM=>" PROPAGATION RECEIVER SPOKE2.EXA STRMADMIN"."DESTINATION_SPOKE2" MPLE.COM 21 APPLY_SPOKE2 APPLY SPOKE2.EXA MPLE.COM 22 CAPTURE_HNS CAPTURE SPOKE2.EXA MPLE.COM
関連項目:
|
Oracle Streamsのトポロジのストリーム・パスに関する次の情報を表示できます。
パスID。Oracle Streamsのトポロジは、識別するストリーム・パスごとにID番号を割り当てます。このパスIDは、パスの各リンクに関連付けられます。単一のパスIDが関連付けられるコンポーネント・リンクの例には、次のものがあります。
取得プロセスからキュー
キューから伝播送信者
伝播送信者から伝播受信者
伝播受信者からキュー
キューから適用プロセス
ソース・コンポーネントID。ソース・コンポーネントとは、メッセージが別のコンポーネントに送られるときの元のコンポーネントのことです。
ソース・コンポーネントの名前。問合せ出力でのコンポーネントの命名方法の詳細は、「各データベースでのOracle Streamsコンポーネントの表示」を参照してください。
宛先コンポーネントID。宛先コンポーネントは、別のコンポーネントからメッセージを受信します。
宛先コンポーネントの名前。
ストリーム・パス内の位置は、パスの特定リンクの場所を示します。たとえば、ある位置はパスの最初のリンク、パスの2番目のリンクなどの場合があります。
これらの情報を表示するには、次の問合せを実行します。
COLUMN PATH_ID HEADING 'Path|ID' FORMAT 9999 COLUMN SOURCE_COMPONENT_ID HEADING 'Source|Component|ID' FORMAT 9999 COLUMN SOURCE_COMPONENT_NAME HEADING 'Source|Component|Name' FORMAT A20 COLUMN DESTINATION_COMPONENT_ID HEADING 'Dest|Component|ID' FORMAT 9999 COLUMN DESTINATION_COMPONENT_NAME HEADING 'Dest|Component|Name' FORMAT A15 COLUMN POSITION HEADING 'Position' FORMAT 9999 SELECT PATH_ID, SOURCE_COMPONENT_ID, SOURCE_COMPONENT_NAME, DESTINATION_COMPONENT_ID, DESTINATION_COMPONENT_NAME, POSITION FROM DBA_STREAMS_TP_COMPONENT_LINK ORDER BY PATH_ID, POSITION;
次の出力は、「各データベースでのOracle Streamsコンポーネントの表示」に示されているコンポーネントのOracle Streamsのトポロジでのパスを示しています。
Source Source Dest Dest Path Component Component Component Component ID ID Name ID Name Position ----- --------- -------------------- --------- --------------- -------- 1 16 CAPTURE_HNS 12 "STRMADMIN"."SO 1 URCE_HNS" 1 12 "STRMADMIN"."SOURCE_ 13 "STRMADMIN"."SO 2 HNS" URCE_HNS"=>"STR MADMIN"."DESTIN ATION_SPOKE1"@H UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ 6 "STRMADMIN"."SO 3 HNS"=>"STRMADMIN"."D URCE_HNS"@SPOKE ESTINATION_SPOKE1"@H 1.EXAMPLE.COM=> UB.EXAMPLE.COM "STRMADMIN"."DES TINATION_SPOKE1" 1 6 "STRMADMIN"."SOURCE_ 1 "STRMADMIN"."DE 4 HNS"@SPOKE1.EXAMPLE. STINATION_SPOKE COM=>"STRMADMIN"."DE 1" STINATION_SPOKE1" 1 1 "STRMADMIN"."DESTINA 8 APPLY_SPOKE1 5 TION_SPOKE1" 2 22 CAPTURE_HNS 18 "STRMADMIN"."SO 1 URCE_HNS" 2 18 "STRMADMIN"."SOURCE_ 19 "STRMADMIN"."SO 2 HNS" URCE_HNS"=>"STR MADMIN"."DESTIN ATION_SPOKE2"@H UB.EXAMPLE.COM 2 19 "STRMADMIN"."SOURCE_ 7 "STRMADMIN"."SO 3 HNS"=>"STRMADMIN"."D URCE_HNS"@SPOKE ESTINATION_SPOKE2"@H 2.EXAMPLE.COM=> UB.EXAMPLE.COM "STRMADMIN"."DES TINATION_SPOKE2" 2 7 "STRMADMIN"."SOURCE_ 2 "STRMADMIN"."DE 4 HNS"@SPOKE2.EXAMPLE. STINATION_SPOKE COM=>"STRMADMIN"."DE 2" STINATION_SPOKE2" 2 2 "STRMADMIN"."DESTINA 9 APPLY_SPOKE2 5 TION_SPOKE2" 3 10 CAPTURE_HNS 3 "STRMADMIN"."SO 1 URCE_HNS" 3 3 "STRMADMIN"."SOURCE_ 4 "STRMADMIN"."SO 2 HNS" URCE_HNS"=>"STR MADMIN"."DESTIN ATION_SPOKE1"@S POKE1.EXAMPLE.CO M 3 4 "STRMADMIN"."SOURCE_ 14 "STRMADMIN"."SO 3 HNS"=>"STRMADMIN"."D URCE_HNS"@HUB.N ESTINATION_SPOKE1"@S ET=>"STRMADMIN" POKE1.EXAMPLE.COM ."DESTINATION_S POKE1" 3 14 "STRMADMIN"."SOURCE_ 11 "STRMADMIN"."DE 4 HNS"@HUB.EXAMPLE.COM STINATION_SPOKE =>"STRMADMIN"."DESTI 1" NATION_SPOKE1" 3 11 "STRMADMIN"."DESTINA 15 APPLY_SPOKE1 5 TION_SPOKE1" 4 10 CAPTURE_HNS 3 "STRMADMIN"."SO 1 URCE_HNS" 4 3 "STRMADMIN"."SOURCE_ 5 "STRMADMIN"."SO 2 HNS" URCE_HNS"=>"STR MADMIN"."DESTIN ATION_SPOKE2"@S POKE2.EXAMPLE.C OM 4 5 "STRMADMIN"."SOURCE_ 20 "STRMADMIN"."SO 3 HNS"=>"STRMADMIN"."D URCE_HNS"@HUB.N ESTINATION_SPOKE2"@S ET=>"STRMADMIN" POKE2.EXAMPLE.COM ."DESTINATION_S POKE2" 4 20 "STRMADMIN"."SOURCE_ 17 "STRMADMIN"."DE 4 HNS"@HUB.EXAMPLE.COM STINATION_SPOKE =>"STRMADMIN"."DESTI 2" NATION_SPOKE2" 4 17 "STRMADMIN"."DESTINA 21 APPLY_SPOKE2 5 TION_SPOKE2"
Oracle Streamsパフォーマンス・アドバイザは、DBMS_STREAMS_ADVISOR_ADM
パッケージおよびOracle Streamsのトポロジ・ビューで構成されます。Oracle Streamsのトポロジ・ビューを使用すると、使用する環境のOracle Streamsコンポーネントのパフォーマンス統計を表示および分析できます。
Oracle Streamsコンポーネントのパフォーマンス統計を表示するには、まず最初にDBMS_STREAMS_ADVISOR_ADM
パッケージを使用して、Oracle Streams環境に関する情報を収集する必要があります。「Oracle Streamsのトポロジおよびパフォーマンスに関する情報の収集」を参照してください。
次の各項では、Oracle Streamsコンポーネントのパフォーマンス統計を表示する方法について説明します。
注意: Oracle Streamsコンポーネントのパフォーマンスは、その環境で使用されるコンピュータ機器やネットワーク速度などの複数の要因によって変わります。 |
ボトルネック・コンポーネントとは、最もビジーか、またはアイドル時間がほとんどないコンポーネントのことです。Oracle Streams環境のボトルネック・コンポーネントについて、次の情報を表示できます。
そのコンポーネントを含むパスのパスID。
各Oracle StreamsコンポーネントのコンポーネントID。Oracle Streamsのトポロジは、各コンポーネントにID番号を割り当て、この番号を使用してそのコンポーネントに関する情報と、そのコンポーネントを流れるストリーム・パスに関する情報を追跡します。
Oracle Streamsコンポーネントの名前。問合せ出力でのコンポーネントの命名方法の詳細は、「各データベースでのOracle Streamsコンポーネントの表示」を参照してください。
Oracle Streamsコンポーネントのタイプ。次のタイプがあります。
コンポーネントを含むデータベース
次の問合せを実行すると、Oracle Streams環境のボトルネック・コンポーネントがチェックされます。
COLUMN PATH_ID HEADING 'Path ID' FORMAT 999 COLUMN COMPONENT_ID HEADING 'Component ID' FORMAT 999 COLUMN COMPONENT_NAME HEADING 'Name' FORMAT A20 COLUMN COMPONENT_TYPE HEADING 'Type' FORMAT A20 COLUMN COMPONENT_DB HEADING 'Database' FORMAT A15 SELECT PATH_ID, COMPONENT_ID, COMPONENT_NAME, COMPONENT_TYPE, COMPONENT_DB FROM DBA_STREAMS_TP_PATH_BOTTLENECK WHERE BOTTLENECK_IDENTIFIED='YES' AND ADVISOR_RUN_ID=2 ORDER BY PATH_ID, COMPONENT_ID;
この例では、WHERE
句でADVISOR_RUN_ID
に2
を使用しています。アドバイザ実行IDには、問い合せるアドバイザ実行を指定します。ADVISOR_RUN_ID
の確認方法の詳細は、「Oracle Streamsのトポロジおよびパフォーマンスに関する情報の収集」を参照してください。
次の出力は、「各データベースでのOracle Streamsコンポーネントの表示」に示されているコンポーネントに関するボトルネック・コンポーネントを示しています。
Path ID Component ID Name Type Database ------- ------------ -------------------- -------------------- --------------- 1 6 "STRMADMIN"."SOURCE_ PROPAGATION RECEIVER HUB.EXAMPLE.COM HNS"@SPOKE1.EXAMPLE. COM=>"STRMADMIN"."DE STINATION_SPOKE1" 3 10 CAPTURE_HNS CAPTURE HUB.EXAMPLE.COM 4 10 CAPTURE_HNS CAPTURE HUB.EXAMPLE.COM
この問合せで結果が返されない場合は、使用している環境において、Oracle Streamsパフォーマンス・アドバイザがボトルネック・コンポーネントを特定しなかったということです。ただし、この問合せで1つ以上のボトルネック・コンポーネントが返された場合は、これらのコンポーネントのステータスをチェックしてください。これらが無効になっている場合は、それらを有効にできます。コンポーネントを有効化したら、パフォーマンスが向上するようにその環境を修正できるかどうかを調べます。
Oracle Streamsパフォーマンス・アドバイザでは、あるコンポーネントがボトルネック・コンポーネントかどうかを判断できないことがあります。このようなコンポーネントを表示するには、DBA_STREAMS_TP_PATH_BOTTLENECK
ビューを問い合せるときにBOTTLENECK_IDENTIFIED
をNO
に設定します。ADVISOR_RUN_REASON
列の出力には、Oracle Streamsパフォーマンス・アドバイザが、あるコンポーネントがボトルネック・コンポーネントかどうかを判断できない理由が示されます。次の理由がADVISOR_RUN_REASON
列の出力に示されます。
PRE-11.1
DATABASE
EXISTS
: そのコンポーネントが、Oracle Database 11g リリース1よりも前のデータベースを含むストリーム・パスにあることを示しています。このようなコンポーネントに対してはボトルネック分析は実行されません。
DIAGNOSTIC
PACK
REQUIRED
: そのコンポーネントが、Oracle Diagnostics Packのないデータベースを含むストリーム・パスにあることを示しています。このようなコンポーネントに対してはボトルネック分析は実行されません。
NO
BOTTLENECK
IDENTIFIED
: ストリーム・パスでボトルネックが特定できなかったか、またはストリーム・パスに2つ以上のボトルネック・コンポーネントが存在する可能性があることを意味します。
Oracle StreamsのトポロジのOracle Streamsコンポーネントの統計を表示できます。この項の問合せでは、コンポーネントごとの次の情報が表示されます。
コンポーネントが属するパスのID
Oracle Streamsコンポーネントの名前。
Oracle Streamsコンポーネントのタイプ。次のタイプがあります。
コンポーネントについて収集された統計
統計の値および単位。たとえば、LATENCY
統計は、値の数および単位のSECONDS
を示します。TRANSACTION
APPLY
RATE
統計は、値の数と単位のTRANSACTIONS
PER
SECOND
を示します。
DBMS_STREAMS_ADVISOR_ADM
パッケージのANALYZE_CURRENT_PERFORMANCE
プロシージャは、この項の問合せによって返された統計を収集します。したがって、問合せによって返される統計は、プロシージャ実行時点の統計です。統計は自動的には更新されません。
表23-3は、この項の問合せによって返される各統計を説明しています。
表23-3 Oracle Streamsコンポーネントのコンポーネント・レベル統計
コンポーネント・タイプ | 統計 | 単位 | 説明 |
---|---|---|---|
|
|
|
取得プロセスによってスキャンされたREDOログのデータベース変更の1秒当たりの平均数。 取得プロセスは、そのルール・セットを満たすスキャン済変更を取得してエンキューします。 |
|
|
|
取得プロセスによってエンキューされる1秒当たりの平均論理変更レコード(LCR)数。 |
|
|
|
取得プロセスでREDOエントリが最後に使用可能になってから、取得プロセスが最後にスキャンしたREDOエントリがREDOログに記録されるまでの時間。 統計の目的は、変更がREDOログに記録されてから、そのREDOレコードが取得プロセスによってスキャンされるまでの時間を示すことです。 取得プロセスは、スキャンされた変更をエンキューする場合もしない場合もあります。取得プロセスは、変更がそのルール・セットを満たす場合にのみ変更をエンキューします。 |
|
|
|
伝播送信者によって送信された1秒当たりの平均メッセージ数。 |
|
|
|
伝播送信者によって送信された1秒当たりの平均バイト数。 |
|
|
|
メッセージがソース・データベースで作成されてから、伝播送信者によって宛先キューに送信されるまでの時間。 示される値は、伝播送信者によってソース・キューから宛先キューへ送信された単一のメッセージについてのものです。このメッセージは、 伝播によって送信されたメッセージのタイプによって、メッセージの作成時間は次のいずれかになります。
|
|
|
|
適用プロセスによって1秒当たりに適用される平均メッセージ数。 取得LCRまたは永続LCRは、次のいずれかの方法で適用できます。
永続ユーザー・メッセージは、次のいずれかの方法で適用できます。
|
|
|
|
適用プロセスによって適用された1秒当たりの平均トランザクション数。トランザクションには通常、複数のメッセージが含まれます。 取得LCRまたは永続LCRを含むトランザクションは、次のいずれかの方法で適用できます。
永続ユーザー・メッセージを含むトランザクションは、次のいずれかの方法で適用できます。
|
|
|
|
適用プロセスの場合、メッセージがソース・データベースで作成されてから、適用プロセスによって宛先データベースで適用されるまでの時間。 示される値は、適用プロセスによって適用された単一メッセージについてのものです。このメッセージは、 適用されたメッセージのタイプによって、メッセージの作成時間は次のいずれかになります。
|
|
|
|
キューにエンキューされた1秒当たりの平均メッセージ数。 |
|
|
|
バッファ・キューからキュー表にオーバーフローした1秒当たりの平均メッセージ数。 |
|
|
|
|
|
|
|
Oracle Streamsコンポーネントが、待機イベントが原因で待機に費やす時間のパーセンテージ。 Oracle Streamsパフォーマンス・アドバイザは、コンポーネントごとに上位3つのイベントに関する情報のみを収集します。 たとえば、取得プロセスは、REDOログ・ファイルが使用可能になるまで待機する場合があります。 |
次に、これらのパフォーマンス統計についての一般的な考慮事項を示します。
レート、帯域幅およびイベント統計については、同じユーザー・セッションのANALYZE_CURRENT_PERFORMANCE
プロシージャによって使用される2つのスナップショット間の時間差として期間が計算されます。スナップショットの詳細は、「Oracle Streamsパフォーマンス・アドバイザによって収集される情報について」を参照してください。ユーザー・セッションが終了すると、レート、帯域幅およびイベント統計は削除されます。
待機時間統計が-1秒の場合は、ANALYZE_CURRENT_PERFORMANCE
プロシージャは実行時にコンポーネントの統計を収集できなかったということです。ほとんどの場合、この結果は、プロシージャの実行時にコンポーネントが無効であったことを示します。たとえば、適用プロセスのLATENCY
統計が-1の場合は、コンポーネントが、ANALYZE_CURRENT_PERFORMANCE
プロシージャの実行時に無効だったと考えられます。
Oracle Streamsのトポロジのコンポーネントのパフォーマンス統計を表示するには、次の問合せを実行します。
COLUMN PATH_ID HEADING 'Path|ID' FORMAT 999 COLUMN COMPONENT_ID HEADING 'Component|ID' FORMAT 999 COLUMN COMPONENT_NAME HEADING 'Name' FORMAT A20 COLUMN COMPONENT_TYPE HEADING 'Type' FORMAT A12 COLUMN STATISTIC_NAME HEADING 'Statistic' FORMAT A15 COLUMN STATISTIC_VALUE HEADING 'Value' FORMAT 99999999999.99 COLUMN STATISTIC_UNIT HEADING 'Unit' FORMAT A15 SELECT DISTINCT cp.PATH_ID, cs.COMPONENT_ID, cs.COMPONENT_NAME, cs.COMPONENT_TYPE, cs.STATISTIC_NAME, cs.STATISTIC_VALUE, cs.STATISTIC_UNIT FROM DBA_STREAMS_TP_COMPONENT_STAT cs, (SELECT PATH_ID, SOURCE_COMPONENT_ID AS COMPONENT_ID FROM DBA_STREAMS_TP_COMPONENT_LINK UNION SELECT PATH_ID, DESTINATION_COMPONENT_ID AS COMPONENT_ID FROM DBA_STREAMS_TP_COMPONENT_LINK) cp WHERE cs.ADVISOR_RUN_ID = 2 AND cs.SESSION_ID IS NULL AND cs.SESSION_SERIAL# IS NULL AND cs.COMPONENT_ID = cp.COMPONENT_ID ORDER BY PATH_ID, COMPONENT_ID, COMPONENT_NAME, COMPONENT_TYPE, STATISTIC_NAME;
この例では、WHERE
句でADVISOR_RUN_ID
に2
を使用しています。アドバイザ実行IDには、問い合せるアドバイザ実行を指定します。ADVISOR_RUN_ID
の確認方法の詳細は、「Oracle Streamsのトポロジおよびパフォーマンスに関する情報の収集」を参照してください。
次の出力は、「各データベースでのOracle Streamsコンポーネントの表示」に示されているコンポーネントについてのパフォーマンス統計の一部を示しています。具体的には、ストリーム・パス 1およびストリーム・パス 3のコンポーネントのパフォーマンス統計を示しています。
Path Component ID ID Name Type Statistic Value Unit ---- ---------- -------------------- ------------ --------------- --------------- --------------- 1 1 "STRMADMIN"."DESTINA QUEUE CURRENT QUEUE S .00 NUMBER OF MESSA TION_SPOKE1" IZE GES 1 1 "STRMADMIN"."DESTINA QUEUE ENQUEUE RATE 2573.21 MESSAGES PER SE TION_SPOKE1" COND 1 1 "STRMADMIN"."DESTINA QUEUE SPILL RATE .00 MESSAGES PER SE TION_SPOKE1" COND 1 6 "STRMADMIN"."SOURCE_ PROPAGATION EVENT: CPU + Wa 32.55 PERCENT HNS"@SPOKE1.EXAMPLE. RECEIVER it for CPU COM=>"STRMADMIN"."DE STINATION_SPOKE1" 1 6 "STRMADMIN"."SOURCE_ PROPAGATION EVENT: SQL*Net 23.62 PERCENT HNS"@SPOKE1.EXAMPLE. RECEIVER more data from COM=>"STRMADMIN"."DE client STINATION_SPOKE1" 1 6 "STRMADMIN"."SOURCE_ PROPAGATION EVENT: latch: r 2.10 PERCENT HNS"@SPOKE1.EXAMPLE. RECEIVER ow cache object COM=>"STRMADMIN"."DE s STINATION_SPOKE1" 1 8 APPLY_SPOKE1 APPLY EVENT: CPU + Wa 23.10 PERCENT it for CPU 1 8 APPLY_SPOKE1 APPLY EVENT: latch: r 1.31 PERCENT ow cache object s 1 8 APPLY_SPOKE1 APPLY EVENT: latch: s 1.57 PERCENT hared pool 1 8 APPLY_SPOKE1 APPLY LATENCY 2.13 SECONDS 1 8 APPLY_SPOKE1 APPLY MESSAGE APPLY R 10004.00 MESSAGES PER SE ATE COND 1 8 APPLY_SPOKE1 APPLY TRANSACTION APP 100.00 TRANSACTIONS PE LY RATE R SECOND 1 12 "STRMADMIN"."SOURCE_ QUEUE CURRENT QUEUE S .00 NUMBER OF MESSA HNS" IZE GES 1 12 "STRMADMIN"."SOURCE_ QUEUE ENQUEUE RATE 9932.00 MESSAGES PER SE HNS" COND 1 12 "STRMADMIN"."SOURCE_ QUEUE SPILL RATE .00 MESSAGES PER SE HNS" COND 1 13 "STRMADMIN"."SOURCE_ PROPAGATION BANDWIDTH 32992.96 BYTES PER SECON HNS"=>"STRMADMIN"."D SENDER D ESTINATION_SPOKE1"@H UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATION EVENT: CPU + Wa 35.96 PERCENT HNS"=>"STRMADMIN"."D SENDER it for CPU ESTINATION_SPOKE1"@H UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATION EVENT: SQL*Net .26 PERCENT HNS"=>"STRMADMIN"."D SENDER message to dbli ESTINATION_SPOKE1"@H nk UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATION EVENT: latch: r .26 PERCENT HNS"=>"STRMADMIN"."D SENDER ow cache object ESTINATION_SPOKE1"@H s UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATION LATENCY 4.00 SECONDS HNS"=>"STRMADMIN"."D SENDER ESTINATION_SPOKE1"@H UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATION SEND RATE 2568.00 MESSAGES PER SE HNS"=>"STRMADMIN"."D SENDER COND ESTINATION_SPOKE1"@H UB.EXAMPLE.COM 1 16 CAPTURE_HNS CAPTURE CAPTURE RATE 10464.00 MESSAGES PER SE COND 1 16 CAPTURE_HNS CAPTURE ENQUEUE RATE 10002.00 MESSAGES PER SE COND 1 16 CAPTURE_HNS CAPTURE EVENT: CPU + Wa 11.02 PERCENT it for CPU 1 16 CAPTURE_HNS CAPTURE EVENT: CPU + Wa 35.96 PERCENT it for CPU 1 16 CAPTURE_HNS CAPTURE EVENT: SQL*Net 5.51 PERCENT message from db link 1 16 CAPTURE_HNS CAPTURE LATENCY 2.65 SECONDS . . .
注意: この出力は、説明のみを目的としています。実際のパフォーマンス特性は、個々の構成および条件によって異なります。 |
この出力は、「各データベースでのOracle Streamsコンポーネントの表示」および「Oracle Streamsのトポロジでの各ストリーム・パスの表示」の問合せに対する出力とともに分析できます。
関連項目:
|
Oracle Streamsコンポーネントのセッション・レベル統計を表示できます。この項の問合せでは、それぞれのセッション・レベル統計についての次の情報が表示されます。
Oracle Streamsコンポーネントの名前。
Oracle Streamsコンポーネントのタイプ。次のタイプがあります。
サブコンポーネントのタイプ。取得プロセスおよび適用プロセスにのみサブコンポーネントがあります。
取得プロセスには、次のサブコンポーネント・タイプがあります。
LOGMINER
READER
: 取得プロセスのビルダー・サーバーを示します。
LOGMINER
PREPARER
取得プロセスのプリペアラ・サーバーを示します。
LOGMINER
BUILDER
取得プロセスのリーダー・サーバーを示します。
CAPTURE
SESSION
: 取得プロセス・セッションを示します。
適用プロセスには、次のサブコンポーネント・タイプがあります。
PROPAGATION
SENDER+RECEIVER
: 取得と適用の複合による最適化でLCRを取得プロセスから適用プロセスに直接送信します。
APPLY
READER
: リーダー・サーバーを示します。
APPLY
COORDINATOR
: コーディネータ・プロセスを示します。
APPLY
SERVER
: リーダー・サーバーを示します。
コンポーネントについて収集された統計
統計の値および単位。セッション・レベル統計は、単位のPERCENT
を示します。この値は、IDLE
、FLOW
CONTROL
のための一時停止、EVENT
の待機のいずれかに費やされた時間のパーセンテージです。
DBMS_STREAMS_ADVISOR_ADM
パッケージのANALYZE_CURRENT_PERFORMANCE
プロシージャは、この項の問合せによって返された統計を収集します。したがって、問合せによって返される統計は、プロシージャ実行時点の統計です。統計は自動的には更新されません。
表23-4は、この項の問合せによって返される各統計を説明しています。
表23-4 Oracle Streamsコンポーネントのセッション・レベル統計
統計 | 単位 | 説明 |
---|---|---|
|
|
セッションがアイドル状態で費やした時間のパーセンテージ。アイドル状態のセッションでは、何の処理も実行しません。 |
|
|
セッションがフロー制御のために一時停止した時間のパーセンテージ。フロー制御の詳細は、「取得プロセスの状態」を参照してください。 |
|
|
セッションが、待機イベントが原因で待機に費やす時間のパーセンテージ。 Oracle Streamsパフォーマンス・アドバイザは、セッションごとに上位3つのイベントに関する情報のみを収集します。 たとえば、適用サーバーは、依存するトランザクションが適用されるまで待機してから、そのトランザクションを適用する場合があります。 |
フロー制御およびイベント統計については、同じユーザー・セッションのANALYZE_CURRENT_PERFORMANCE
プロシージャによって使用される2つのスナップショット間の時間差として期間が計算されます。スナップショットの詳細は、「Oracle Streamsパフォーマンス・アドバイザによって収集される情報について」を参照してください。ユーザー・セッションが終了すると、フロー制御およびイベント統計は消去されます。
Oracle Streamsのトポロジのコンポーネントのセッション・レベル・パフォーマンス統計を表示するには、次の問合せを実行します。
COLUMN PATH_ID HEADING 'Path|ID' FORMAT 999 COLUMN COMPONENT_ID HEADING 'Component|ID' FORMAT 999 COLUMN COMPONENT_NAME HEADING 'Component|Name' FORMAT A20 COLUMN COMPONENT_TYPE HEADING 'Component|Type' FORMAT A10 COLUMN SUB_COMPONENT_TYPE HEADING 'Subcomponent|Type' FORMAT A17 COLUMN STATISTIC_NAME HEADING 'Statistic' FORMAT A15 COLUMN STATISTIC_VALUE HEADING 'Value' FORMAT 999.99 COLUMN STATISTIC_UNIT HEADING 'Unit' FORMAT A7 SELECT DISTINCT cp.PATH_ID, cs.COMPONENT_ID, cs.COMPONENT_NAME, cs.COMPONENT_TYPE, cs.SUB_COMPONENT_TYPE, cs.STATISTIC_NAME, cs.STATISTIC_VALUE, cs.STATISTIC_UNIT FROM DBA_STREAMS_TP_COMPONENT_STAT cs, (SELECT PATH_ID, SOURCE_COMPONENT_ID AS COMPONENT_ID FROM DBA_STREAMS_TP_COMPONENT_LINK UNION SELECT PATH_ID, DESTINATION_COMPONENT_ID AS COMPONENT_ID FROM DBA_STREAMS_TP_COMPONENT_LINK) cp WHERE cs.ADVISOR_RUN_ID=2 AND cs.SESSION_ID IS NOT NULL AND cs.SESSION_SERIAL# IS NOT NULL AND cs.COMPONENT_ID = cp.COMPONENT_ID ORDER BY PATH_ID, COMPONENT_ID, COMPONENT_NAME, COMPONENT_TYPE, STATISTIC_NAME;
この例では、WHERE
句でADVISOR_RUN_ID
に2
を使用しています。アドバイザ実行IDには、問い合せるアドバイザ実行を指定します。ADVISOR_RUN_ID
の確認方法の詳細は、「Oracle Streamsのトポロジおよびパフォーマンスに関する情報の収集」を参照してください。
次の出力は、「各データベースでのOracle Streamsコンポーネントの表示」に示されているコンポーネントについてのセッション・レベル・パフォーマンス統計の一部を示しています。具体的には、ストリーム・パス1およびストリーム・パス3のコンポーネントのセッション・レベル・パフォーマンス統計を示しています。
Path Component Component Component Subcomponent ID ID Name Type Type Statistic Value Unit ---- --------- -------------------- ---------- ----------------- --------------- ------- ------- 1 6 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: CPU + Wa 32.55 PERCENT HNS"@SPOKE1.EXAMPLE. N RECEIVER it for CPU COM=>"STRMADMIN"."DE STINATIO N_SPOKE1" 1 6 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: SQL*Net 23.62 PERCENT HNS"@SPOKE1.EXAMPLE. N RECEIVER more data from COM=>"STRMADMIN"."DE client STINATION_SPOKE1" 1 6 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: latch: r 2.10 PERCENT HNS"@SPOKE1.EXAMPLE. N RECEIVER ow cache object COM=>"STRMADMIN"."DE s STINATION_SPOKE1" 1 6 "STRMADMIN"."SOURCE_ PROPAGATIO FLOW CONTROL .89 PERCENT HNS"@SPOKE1.EXAMPLE. N RECEIVER COM=>"STRMADMIN"."DE STINATION_SPOKE1" 1 6 "STRMADMIN"."SOURCE_ PROPAGATIO IDLE 36.61 PERCENT HNS"@SPOKE1.EXAMPLE. N RECEIVER COM=>"STRMADMIN"."DE STINATION_SPOKE1" 1 8 APPLY_SPOKE1 APPLY APPLY READER EVENT: CPU + Wa .26 PERCENT it for CPU 1 8 APPLY_SPOKE1 APPLY APPLY SERVER EVENT: CPU + Wa 23.10 PERCENT it for CPU 1 8 APPLY_SPOKE1 APPLY APPLY SERVER EVENT: latch: r 1.31 PERCENT ow cache object s 1 8 APPLY_SPOKE1 APPLY APPLY READER EVENT: latch: s .26 PERCENT hared pool 1 8 APPLY_SPOKE1 APPLY APPLY SERVER EVENT: latch: s 1.57 PERCENT hared pool 1 8 APPLY_SPOKE1 APPLY APPLY COORDINATOR FLOW CONTROL .00 PERCENT 1 8 APPLY_SPOKE1 APPLY APPLY READER FLOW CONTROL 10.76 PERCENT 1 8 APPLY_SPOKE1 APPLY APPLY SERVER FLOW CONTROL .00 PERCENT 1 8 APPLY_SPOKE1 APPLY APPLY COORDINATOR IDLE 6.21 PERCENT 1 8 APPLY_SPOKE1 APPLY APPLY READER IDLE 9.24 PERCENT 1 8 APPLY_SPOKE1 APPLY APPLY SERVER IDLE 8.53 PERCENT 1 13 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: CPU + Wa 21.65 PERCENT HNS"=>"STRMADMIN"."D N SENDER it for CPU ESTINATION_SPOKE1"@H UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: SQL*Net .26 PERCENT HNS"=>"STRMADMIN"."D N SENDER message to dbli ESTINATION_SPOKE1"@H nk UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: latch: r .26 PERCENT HNS"=>"STRMADMIN"."D N SENDER ow cache object ESTINATION_SPOKE1"@H s UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: latch: s .26 PERCENT HNS"=>"STRMADMIN"."D N SENDER hared pool ESTINATION_SPOKE1"@H UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATIO FLOW CONTROL 7.37 PERCENT HNS"=>"STRMADMIN"."D N SENDER ESTINATION_SPOKE1"@H UB.EXAMPLE.COM 1 13 "STRMADMIN"."SOURCE_ PROPAGATIO IDLE 67.41 PERCENT HNS"=>"STRMADMIN"."D N SENDER ESTINATION_SPOKE1"@H UB.EXAMPLE.COM 1 16 CAPTURE_HNS CAPTURE LOGMINER READER EVENT: ARCH wai .26 PERCENT t on c/f tx acq uire 2 1 16 CAPTURE_HNS CAPTURE CAPTURE SESSION EVENT: CPU + Wa 35.96 PERCENT it for CPU 1 16 CAPTURE_HNS CAPTURE LOGMINER BUILDER EVENT: CPU + Wa .26 PERCENT it for CPU 1 16 CAPTURE_HNS CAPTURE LOGMINER PREPARER EVENT: CPU + Wa 11.02 PERCENT it for CPU 1 16 CAPTURE_HNS CAPTURE LOGMINER READER EVENT: CPU + Wa .26 PERCENT it for CPU 1 16 CAPTURE_HNS CAPTURE CAPTURE SESSION EVENT: SQL*Net 5.51 PERCENT message from db link 1 16 CAPTURE_HNS CAPTURE CAPTURE SESSION EVENT: SQL*Net .26 PERCENT message to dbli nk 1 16 CAPTURE_HNS CAPTURE CAPTURE SESSION EVENT: latch: r .26 PERCENT ow cache object s 1 16 CAPTURE_HNS CAPTURE LOGMINER BUILDER EVENT: latch: r 1.84 PERCENT ow cache object s 1 16 CAPTURE_HNS CAPTURE LOGMINER PREPARER EVENT: latch: r .79 PERCENT ow cache object s 1 16 CAPTURE_HNS CAPTURE CAPTURE SESSION EVENT: latch: s .26 PERCENT hared pool 1 16 CAPTURE_HNS CAPTURE LOGMINER READER EVENT: latch: s .79 PERCENT hared pool 1 16 CAPTURE_HNS CAPTURE CAPTURE SESSION FLOW CONTROL 16.27 PERCENT 1 16 CAPTURE_HNS CAPTURE LOGMINER BUILDER FLOW CONTROL .00 PERCENT 1 16 CAPTURE_HNS CAPTURE LOGMINER PREPARER FLOW CONTROL .00 PERCENT 1 16 CAPTURE_HNS CAPTURE LOGMINER READER FLOW CONTROL .00 PERCENT 1 16 CAPTURE_HNS CAPTURE CAPTURE SESSION IDLE 41.47 PERCENT 1 16 CAPTURE_HNS CAPTURE LOGMINER BUILDER IDLE 97.90 PERCENT 1 16 CAPTURE_HNS CAPTURE LOGMINER PREPARER IDLE 88.19 PERCENT 1 16 CAPTURE_HNS CAPTURE LOGMINER READER IDLE 98.69 PERCENT . . . 3 4 "STRMADMIN"."SOURCE_ PROPAGATIO FLOW CONTROL 6.50 PERCENT HNS"=>"STRMADMIN"."D N SENDER ESTINATION_SPOKE1"@S POKE1.EXAMPLE.COM 3 4 "STRMADMIN"."SOURCE_ PROPAGATIO IDLE 70.50 PERCENT HNS"=>"STRMADMIN"."D N SENDER ESTINATION_SPOKE1"@S POKE1.EXAMPLE.COM 3 10 CAPTURE_HNS CAPTURE CAPTURE SESSION EVENT: ARCH wai 52.23 PERCENT t for archivelo g lock 3 10 CAPTURE_HNS CAPTURE CAPTURE SESSION EVENT: CPU + Wa 7.35 PERCENT it for CPU 3 10 CAPTURE_HNS CAPTURE CAPTURE SESSION EVENT: control .52 PERCENT file sequential read 3 10 CAPTURE_HNS CAPTURE CAPTURE SESSION FLOW CONTROL 4.24 PERCENT 3 10 CAPTURE_HNS CAPTURE CAPTURE SESSION IDLE 2.23 PERCENT 3 14 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: CPU + Wa 6.92 PERCENT HNS"@HUB.EXAMPLE.COM N RECEIVER it for CPU =>"STRMADMIN"."DESTI NATION_SPOKE1" 3 14 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: latch: r 2.23 PERCENT HNS"@HUB.EXAMPLE.COM N RECEIVER ow cache object =>"STRMADMIN"."DESTI s NATION_SPOKE1" 3 14 "STRMADMIN"."SOURCE_ PROPAGATIO EVENT: library 3.79 PERCENT HNS"@HUB.EXAMPLE.COM N RECEIVER cache: mutex X =>"STRMADMIN"."DESTI NATION_SPOKE1" 3 14 "STRMADMIN"."SOURCE_ PROPAGATIO FLOW CONTROL .67 PERCENT HNS"@HUB.EXAMPLE.COM N RECEIVER =>"STRMADMIN"."DESTI NATION_SPOKE1" 3 14 "STRMADMIN"."SOURCE_ PROPAGATIO IDLE 85.04 PERCENT HNS"@HUB.EXAMPLE.COM N RECEIVER =>"STRMADMIN"."DESTI NATION_SPOKE1" 3 15 APPLY_SPOKE1 APPLY APPLY COORDINATOR EVENT: latch: r 4.20 PERCENT ow cache object s 3 15 APPLY_SPOKE1 APPLY APPLY COORDINATOR EVENT: latch: s .52 PERCENT hared pool 3 15 APPLY_SPOKE1 APPLY APPLY READER EVENT: latch: s .26 PERCENT hared pool 3 15 APPLY_SPOKE1 APPLY APPLY COORDINATOR FLOW CONTROL .00 PERCENT 3 15 APPLY_SPOKE1 APPLY APPLY READER FLOW CONTROL 1.56 PERCENT 3 15 APPLY_SPOKE1 APPLY APPLY SERVER FLOW CONTROL .00 PERCENT 3 15 APPLY_SPOKE1 APPLY APPLY COORDINATOR IDLE 87.28 PERCENT 3 15 APPLY_SPOKE1 APPLY APPLY READER IDLE 96.88 PERCENT 3 15 APPLY_SPOKE1 APPLY APPLY SERVER IDLE 91.29 PERCENT
注意:
|
この項の問合せは、Oracle Streamsのトポロジ内の各ストリーム・パスに関する次の情報を表示します。
パスにOracle Streamsの最適化モードを使用するかどうかを示します。パスのOPTIMIZATION_MODE
統計が0より大きい場合、パスは取得と適用の複合による最適化を使用します。OPTIMIZATION_MODE
統計が0の場合、パスは取得と適用の複合による最適化を使用しません。
MESSAGE
RATE
値は、パスの開始からパスの終了までに送信される1秒当たりの平均メッセージ数を示します。
TRANSACTION
RATE
値は、パスの開始からパスの終了までに送信される1秒当たりの平均トランザクション数を示します。
これらの統計の期間は、同じユーザー・セッションのANALYZE_CURRENT_PERFORMANCE
プロシージャによって使用される2つのスナップショット間の時間差として期間が計算されます。スナップショットの詳細は、「Oracle Streamsパフォーマンス・アドバイザによって収集される情報について」を参照してください。ユーザー・セッションが終了すると、これらの統計は消去されます。
これらの情報を表示するには、次の問合せを実行します。
COLUMN PATH_ID HEADING 'Path ID' FORMAT 999 COLUMN STATISTIC_NAME HEADING 'Statistic' FORMAT A25 COLUMN STATISTIC_VALUE HEADING 'Value' FORMAT 99999999.99 COLUMN STATISTIC_UNIT HEADING 'Unit' FORMAT A25 SELECT PATH_ID, STATISTIC_NAME, STATISTIC_VALUE, STATISTIC_UNIT FROM DBA_STREAMS_TP_PATH_STAT WHERE ADVISOR_RUN_ID=2 ORDER BY PATH_ID, STATISTIC_NAME;
この例では、WHERE
句でADVISOR_RUN_ID
に2
を使用しています。アドバイザ実行IDには、問い合せるアドバイザ実行を指定します。ADVISOR_RUN_ID
の確認方法の詳細は、「Oracle Streamsのトポロジおよびパフォーマンスに関する情報の収集」を参照してください。
次の出力は、「Oracle Streamsのトポロジでの各ストリーム・パスの表示」に示されているストリーム・パスのパス統計を示しています。
Path ID Statistic Value Unit ------- ------------------------- ------------ ------------------------- 1 OPTIMIZATION_MODE 1.00 NUMBER 1 MESSAGE RATE 10004.00 MESSAGES PER SECOND 1 TRANSACTION RATE 100.00 TRANSACTIONS PER SECOND 2 OPTIMIZATION_MODE 1.00 NUMBER 2 MESSAGE RATE 10028.25 MESSAGES PER SECOND 2 TRANSACTION RATE 100.37 TRANSACTIONS PER SECOND 3 OPTIMIZATION_MODE 1.00 NUMBER 3 MESSAGE RATE 9623.20 MESSAGES PER SECOND 3 TRANSACTION RATE 97.10 TRANSACTIONS PER SECOND 4 OPTIMIZATION_MODE 1.00 NUMBER 4 MESSAGE RATE 10180.05 MESSAGES PER SECOND 4 TRANSACTION RATE 102.68 TRANSACTIONS PER SECOND
注意: この出力は、説明のみを目的としています。実際のパフォーマンス特性は、個々の構成および条件によって異なります。 |
UTL_SPADV
パッケージには、分散データベース環境のOracle Streamsコンポーネントの統計を収集して分析するサブプログラムがあります。このパッケージは、Oracle Streamsパフォーマンス・アドバイザを使用して統計を収集します。
COLLECT_STATS
およびSTART_MONITORING
プロシージャでは、Oracle Streamsパフォーマンス・アドバイザを使用して、分散データベース環境のOracle Streamsコンポーネントおよびサブコンポーネントに関する統計を収集します。SHOW_STATS
プロシージャでは、統計を含む出力を生成します。出力は、スプレッドシートに簡単にインポートして分析できるように書式設定されます。
COLLECT_STATS
プロシージャを使用すると、プロシージャを呼び出すたびに統計を収集できます。comp_stat_table
およびpath_stat_table
パラメータでは、パフォーマンスの統計を格納する表を指定します。デフォルトでは、これらの表はそれぞれSTREAMS$_ADVISOR_COMP_STAT
およびSTREAMS$_ADVISOR_PATH_STAT
です。
また、START_MONITORING
プロシージャを使用して、指定した間隔で継続的にOracle Streamsパフォーマンスを監視する監視ジョブを作成することもできます。監視ジョブでは、COLLECT_STATS
プロシージャを使用して統計を収集します。START_MONITORING
プロシージャではSTREAMS$_PA_MONITORING
表への移入を行い、この表のSHOW_STATS_TABLE
列ではパフォーマンスの統計を含む表を指定します。監視ジョブを変更するにはALTER_MONITORING
プロシージャを使用し、監視ジョブを停止するにはSTOP_MONITORING
プロシージャを使用します。
これらのプロシージャは、Oracle Streamsパフォーマンス・アドバイザと同じ統計を収集します。これらの統計の詳細は、表23-3「Oracle Streamsコンポーネントのコンポーネント・レベル統計」および表23-4「Oracle Streamsコンポーネントのセッション・レベル統計」を参照してください。
この項の内容は次のとおりです。
関連項目: UTL_SPADV パッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照 |
UTL_SPADV
パッケージを使用して統計を収集するには、次の手順を実行します。
情報の収集に使用するデータベースを指定します。このデータベースの管理ユーザーは、次の要件を満たしている必要があります。
このユーザーには、監視対象のOracle Streamsコンポーネントを含む各データベースへのデータベース・リンクに対するアクセス権が必要です。
ユーザーは、DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE
プロシージャを使用して権限が付与されている必要があります。各データベース・リンクは、DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE
プロシージャを使用して権限が付与されているリモート・データベースのユーザーに接続する必要があります。
Oracle Streamsコンポーネントを使用して各データベースでOracle Streams管理者を構成すると、Oracle Streams管理者に必要な権限が割り当てられます。Oracle Streams管理者を作成する方法の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。
ご使用の環境に、これらの要件を満たすデータベースがない場合は、データベースを1つ選択し、必要なデータベース・リンクを構成して、必要な権限をユーザーに付与してから処理を進めてください。
SQL*Plusでは、手順1で指定したデータベースに、手順1に示される要件を満たすユーザーとして接続します。
SQL*Plusでデータベースに接続する方法については、『Oracle Database管理者ガイド』を参照してください。
ORACLE_HOME
のrdbms/adminディレクトリでutlspadv.sql
スクリプトを実行してUTL_SPADV
パッケージをロードします。次に例を示します。
@utlspadv.sql
現在のOracle Streamsパフォーマンスの統計を1回収集するか、Oracle Streamsパフォーマンスを継続的に監視するジョブを作成します。
現在のOracle Streamsパフォーマンスの統計を1回収集するには、COLLECT_STATS
プロシージャを実行します。
exec UTL_SPADV.COLLECT_STATS
この例では、COLLECT_STATS
プロシージャのパラメータにデフォルト値を使用します。したがって、この例では、60秒間隔でパフォーマンス・アドバイザが10回実行されます。これらの値は、COLLECT_STATS
プロシージャのinterval
およびnum_runs
パラメータのデフォルト値にそれぞれ対応します。
Oracle Streamsパフォーマンスを継続的に監視するジョブを作成するには、次のプロシージャを実行します。
exec UTL_SPADV.START_MONITORING
この例では、監視ジョブを作成します。その監視ジョブでは、設定した間隔で継続的にパフォーマンスの統計を収集します。この例では、START_MONITORING
プロシージャのパラメータにデフォルト値を使用します。したがって、この例では、60秒ごとにパフォーマンス・アドバイザが実行されます。この値は、START_MONITORING
プロシージャのinterval
パラメータのデフォルト値に対応します。START_MONITORING
プロシージャで間隔を指定すると、COLLECT_STATS
プロシージャのinterval
パラメータにその間隔が使用されます。
これらのプロシージャには、パフォーマンスの統計を収集する方法を調整するために使用できるいくつかのパラメータが用意されています。詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
統計を表示するには、SHOW_STATS
プロシージャを実行します。「UTL_SPADVパッケージを使用したOracle Streamsの統計の表示」を参照してください。
関連項目: UTL_SPADV パッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照 |
UTL_SPADV
パッケージを使用して監視ジョブが実行されているかどうかを確認するには、次の手順を実行します。
監視ジョブを発行したユーザーとしてデータベースに接続します。
IS_MONITORING
ファンクションを実行します。たとえば、STREAM$_MONITORING_JOB
という完全な監視ジョブ名で現在のユーザーによって発行された監視ジョブが実行されているかどうかを調べるには、次のように入力します。
SET SERVEROUTPUT ON DECLARE is_mon BOOLEAN; BEGIN is_mon := UTL_SPADV.IS_MONITORING( job_name => 'STREAMS$_MONITORING_JOB', client_name => NULL); IF is_mon=TRUE THEN DBMS_OUTPUT.PUT_LINE('The monitoring job is running.'); ELSE DBMS_OUTPUT.PUT_LINE('No monitoring job was found.'); END IF; END; /
指定した完全な監視ジョブ名の監視ジョブが現在実行されている場合は、出力に次のテキストが表示されます。
The monitoring job is running.
指定した完全な監視ジョブ名の監視ジョブが現在実行されていない場合は、出力に次のテキストが表示されます。
No monitoring job was found.
注意: 監視ジョブを発行すると、クライアント名とジョブ名が連結されて完全な監視ジョブ名が形成されます。Oracle Enterprise Manager Cloud Controlによって送信される監視ジョブのクライアント名は、常にEM です。 |
UTL_SPADV
パッケージを使用して監視ジョブを変更するには、次の手順を実行します。
監視ジョブをまだ作成していない場合は、「UTL_SPADVパッケージを使用したOracle Streamsの統計の収集」で説明した手順を実行して作成します。手順4では、必ずSTART_MONITORING
プロシージャを実行してください。
監視ジョブを発行したユーザーとしてデータベースに接続します。監視ジョブを変更できるのは、その監視ジョブを発行したユーザーのみであり、各ユーザーが1回に発行できる監視ジョブは1つのみです。
ALTER_MONITORING
プロシージャを実行します。次の例では、監視ジョブの間隔を120秒に設定しています。
BEGIN UTL_SPADV.ALTER_MONITORING( interval => 120); END; /
このプロシージャを実行すると、監視ジョブは120秒ごとに統計を収集します。
UTL_SPADV
パッケージを使用して監視ジョブを停止するには、次の手順を実行します。
監視ジョブを発行したユーザーとしてデータベースに接続します。監視ジョブを停止できるのは、その監視ジョブを発行したユーザーのみであり、各ユーザーが1回に発行できる監視ジョブは1つのみです。
STOP_MONITORING
プロシージャを実行します。
exec UTL_SPADV.STOP_MONITORING
STOP_MONITORING
プロシージャには、監視ジョブによって収集された統計を結果の表から消去するために使用できるpurge
パラメータが用意されています。デフォルトでは、purge
パラメータはFALSE
に設定されており、結果は維持されます。結果を消去するには、purge
パラメータをTRUE
に設定します。
関連項目: 詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。 |
SHOW_STATS
プロシージャでは、パフォーマンス・アドバイザによって収集および格納された統計を表示します。path_stat_table
パラメータを使用して、統計を含む表を指定します。
COLLECT_STATS
プロシージャを使用して統計を収集する場合は、COLLECT_STATS
プロシージャのpath_stat_table
パラメータでこの表を指定します。デフォルトでは、表名はSTREAMS$_ADVISOR_PATH_STAT
です。
START_MONITORING
プロシージャを使用して統計を収集するとき、この表の名前を調べるには、STREAMS$_PA_MONITORING
ビューのSHOW_STATS_TABLE
列を問い合せます。監視ジョブのデフォルトの表はSTREAMS$_PA_SHOW_PATH_STAT
です。
UTL_SPADV
パッケージによって収集され、STREAMS$_ADVISOR_PATH_STAT
表に格納された統計を表示するには、次の手順を実行します。
「UTL_SPADVパッケージを使用したOracle Streamsの統計の収集」で説明した手順を実行して、統計を収集します。
統計を収集したユーザーとしてデータベースに接続します。
監視ジョブを使用している場合は、STREAMS$_PA_MONITORING
ビューのSHOW_STATS_TABLE
列を問い合せて、統計が格納されているこの表の名前を調べます。
SELECT SHOW_STATS_TABLE FROM STREAMS$_PA_MONITORING;
SHOW_STATS
プロシージャを実行します。
たとえば、監視ジョブおよびデフォルトの格納表を使用している場合は、次のプロシージャを実行します。
SET SERVEROUTPUT ON SIZE 50000 BEGIN UTL_SPADV.SHOW_STATS( path_stat_table => 'STREAMS$_PA_SHOW_PATH_STAT'); END; /
出力には、次の凡例が含まれています。
LEGEND <statistics>= <capture> [ <queue> <psender> <preceiver> <queue> ] <apply> <bottleneck> <capture> = '|<C>' <name> <msgs captured/sec> <msgs enqueued/sec> <latency> 'LMR' <idl%> <flwctrl%> <topevt%> <topevt> 'LMP' (<parallelism>) <idl%> <flwctrl%> <topevt%> <topevt> 'LMB' <idl%> <flwctrl%> <topevt%> <topevt> 'CAP' <idl%> <flwctrl%> <topevt%> <topevt> 'CAP+PS' <msgs sent/sec> <bytes sent/sec> <latency> <idl%> <flwctrl%> <topevt%> <topevt> <apply> = '|<A>' <name> <msgs applied/sec> <txns applied/sec> <latency> 'PS+PR' <idl%> <flwctrl%> <topevt%> <topevt> 'APR' <idl%> <flwctrl%> <topevt%> <topevt> 'APC' <idl%> <flwctrl%> <topevt%> <topevt> 'APS' (<parallelism>) <idl%> <flwctrl%> <topevt%> <topevt> <queue> = '|<Q>' <name> <msgs enqueued/sec> <msgs spilled/sec> <msgs in queue> <psender> = '|<PS>' <name> <msgs sent/sec> <bytes sent/sec> <latency> <idl%> <flwctrl%> <topevt%> <topevt> <preceiver> = '|<PR>' <name> <idl%> <flwctrl%> <topevt%> <topevt> <bottleneck>= '|<B>' <name> <sub_name> <sessionid> <serial#> <topevt%> <topevt>
次の表は、凡例で使用される略称について説明しています。
略称 | 説明 |
---|---|
A |
適用プロセス |
APC |
適用プロセスによって使用されるコーディネータ・プロセス |
APR |
適用プロセスによって使用されるリーダー・サーバー |
APS |
適用プロセスによって使用される適用サーバー |
B |
ボトルネック |
C またはCAP |
取得プロセス |
CAP+PS |
取得と適用の複合による最適化での取得プロセス・セッションおよび伝播送信者 |
CCA |
取得と適用の複合(Y はパスに使用されることを示し、N はパスに使用されないことを示します。) |
flwctrl |
フロー制御 |
idl |
アイドル |
LMB |
取得プロセスによって使用されるビルダー・サーバー(LogMiner builder) |
LMP |
取得プロセスによって使用されるプリペアラ・サーバー(LogMiner preparer) |
LMR |
取得プロセスによって使用されるリーダー・サーバー(LogMiner reader) |
msgs |
メッセージ |
preceiver またはPR |
伝播受信者 |
psender またはPS |
伝播送信者 |
PS+PR |
取得と適用の複合による最適化(取得プロセスと適用プロセスが同じデータベース・インスタンスで実行されている)での伝播送信者および伝播受信者 |
Q |
キュー |
serial# |
セッション・シリアル番号 |
sec |
秒 |
sid |
セッション識別子 |
sub_name |
サブコンポーネント名 |
topevt |
最上位イベント |
次に、パス内の最後のコンポーネントが適用プロセスである場合の出力例を示します。
OUTPUT PATH 1 RUN_ID 3 RUN_TIME 2009-JUL-02 05:59:38 CCA Y |<C> DB2$CAP 10267 10040 3 LMR 95% 0% 3.3% "" LMP (1) 86.7% 0% 11.7% "" LMB 86.7% 0% 11.7% "" CAP 71.7% 16.7% 11.7% "" |<Q> "STRMADMIN"."DB2$CAPQ" 2540.45 0 30 |<PS> =>DB1.EXAMPLE.COM 2152.03 32992.96 4 59.2% 9.8% 0% "" |<PR> DB2.EXAMPLE.COM=> 98.5% 0% 0.6% "" |<Q> "STRMADMIN"."DB2$APPQ" 3657.03 0.01 460 |<A> APPLY$_DB2_2 10042 100 4 APR 93.3% 0% 6.7% "" APC 98.1% 0% 1.8% "" APS (4) 370% 0% 6.1% "" |<B> NO BOTTLENECK IDENTIFIED PATH 1 RUN_ID 4 RUN_TIME 2009-JUL-02 06:01:39 CCA Y |<C> DB2$CAP 10464 10002 3 LMR 95% 0% 1.7% "" LMP (1) 83.3% 0% 16.7% "" LMB 85% 0% 15% "" CAP 62.9% 0% 35.7% "" |<Q> "STRMADMIN"."DB2$CAPQ" 2677.03 0.01 45 |<PS> =>DB1.EXAMPLE.COM 2491.08 47883.46 4 65.5% 10.7% 0% "" |<PR> DB2.EXAMPLE.COM=> 0% 83.3% 13.3% "" |<Q> "STRMADMIN"."DB2$APPQ" 2444.03 0.01 0 |<A> APPLY$_DB2_2 10004 100 3 APR 42.9% 57.1% 0% "" APC 90% 0% 10% "" APS (4) 346% 0% 10.3% "" |<B> NO BOTTLENECK IDENTIFIED . . .
注意: この出力は、説明のみを目的としています。実際のパフォーマンス特性は、個々の構成および条件によって異なります。 |
出力の統計を判断するのに凡例および略称を使用します。たとえば、次の出力は、パスが1で実行IDが3のdb2$cap
取得プロセスを表します。
|<C> DB2$CAP 10267 10040 3 LMR 95% 0% 3.3% "" LMP (1) 86.7% 0% 11.7% "" LMB 86.7% 0% 11.7% "" CAP 71.7% 16.7% 11.7% ""
この出力は、次の統計を示しています。
取得プロセスは、平均して毎秒10267のデータベース変更を取得しました。
取得プロセスは、平均して毎秒10040のメッセージをエンキューしました。
取得プロセスの待機時間は、3秒でした。
取得プロセスが使用したリーダー・サーバー(LMR)のアイドル時間は、95%でした。
取得プロセスが使用したリーダー・サーバーがフロー制御モードだった時間は、0%でした。
取得プロセスが使用したリーダー・サーバーが上位待機イベントに費やした時間は、3.3%でした。
プリペアラ・サーバー(LMP)の並列性は、1でした。
取得プロセスが使用したプリペアラ・サーバーのアイドル時間は、86.7%でした。
取得プロセスが使用したプリペアラ・サーバーがフロー制御モードだった時間は、0%でした。
取得プロセスが使用したプリペアラ・サーバーが上位待機イベントに費やした時間は、11.7%でした。
取得プロセスが使用したビルダー・サーバー(LMB)のアイドル時間は、86.7%でした。
取得プロセスが使用したビルダー・サーバーがフロー制御モードだった時間は、0%でした。
取得プロセスが使用したビルダー・サーバーが上位待機イベントに費やした時間は、11.7%でした。
取得プロセスのセッションのアイドル時間は、71.7%でした。
取得プロセスのセッションがフロー制御モードだった時間は、16.7%でした。
取得プロセスのセッションが最上位待機イベントに費やした時間は、11.7%でした。