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%でした。