次の各項では、ルール、ルール・セットおよび評価コンテキストの監視について説明します。
|
注意: Oracle Enterprise Manager Cloud ControlのOracle Streamsツールも、Oracle Streams環境を監視するための優れた手段です。詳細は、Oracle Streamsツールのオンライン・ヘルプを参照してください。 |
|
関連項目:
|
Oracle Streamsルールは、DBMS_STREAMS_ADMパッケージまたはOracle Enterprise Manager Cloud ControlのOracle Streamsツールを使用して作成されます。Oracle Streamsクライアントのルール・セット内のOracle Streamsルールにより、Oracle Streamsクライアントの動作が決まります。Oracle Streamsクライアントには、取得プロセス、伝播、適用プロセスおよびメッセージ・クライアントが含まれています。Oracle Streamsクライアントのルール・セットには、DBMS_RULE_ADMパッケージを使用して作成されたルールも含まれる場合があり、これらのルールも、Oracle Streamsクライアントの動作に影響します。
たとえばhr.employees表に対するDML変更について、取得プロセスのポジティブ・ルール・セットのルールがTRUEと評価されると、この表に対するDML変更が取得プロセスで取得されます。ただし、hr.employees表に対するDML変更について、取得プロセスのネガティブ・ルール・セットのルールがTRUEと評価されると、この表に対するDML変更が廃棄されます。
次のデータ・ディクショナリ・ビューを問い合せると、Oracle Streamsクライアントのルール・セット内のすべてのルール(Oracle StreamsルールおよびDBMS_RULE_ADMパッケージを使用して作成されたルールを含む)が表示されます。
ALL_STREAMS_RULES
DBA_STREAMS_RULES
また、これらの2つのビューには、各ルールの現在のルール条件と、ルール条件が変更されたかどうかが表示されます。
この項で説明する問合せを実行すると、データベース内のOracle Streamsクライアントによって使用されるすべてのルールに関する次の情報が表示されます。
ルールを使用する各Oracle Streamsクライアントの名前
ルールを使用する各Oracle Streamsクライアントのタイプ(取得プロセスを示すCAPTURE、同期取得を示すSYNCHRONOUS CAPTURE、伝播を示すPROPAGATION、適用プロセスを示すAPPLY、またはメッセージ・クライアントを示すDEQUEUE)
ルール名
Oracle Streamsクライアントのルールを含むルール・セットのタイプ(POSITIVEまたはNEGATIVE)
Oracle Streamsルール・レベル(GLOBAL、SCHEMAまたはTABLE)
表ルールの表の名前
ルール・タイプ(DMLまたはDDL)
次の問合せを実行すると、前述の情報が表示されます。
COLUMN STREAMS_NAME HEADING 'Oracle|Streams|Name' FORMAT A14
COLUMN STREAMS_TYPE HEADING 'Oracle|Streams|Type' FORMAT A11
COLUMN RULE_NAME HEADING 'Rule|Name' FORMAT A12
COLUMN RULE_SET_TYPE HEADING 'Rule Set|Type' FORMAT A8
COLUMN STREAMS_RULE_TYPE HEADING 'Oracle|Streams|Rule|Level' FORMAT A7
COLUMN SCHEMA_NAME HEADING 'Schema|Name' FORMAT A6
COLUMN OBJECT_NAME HEADING 'Object|Name' FORMAT A11
COLUMN RULE_TYPE HEADING 'Rule|Type' FORMAT A4
SELECT STREAMS_NAME,
STREAMS_TYPE,
RULE_NAME,
RULE_SET_TYPE,
STREAMS_RULE_TYPE,
SCHEMA_NAME,
OBJECT_NAME,
RULE_TYPE
FROM DBA_STREAMS_RULES;
出力は次のようになります。
Oracle
Oracle Oracle Streams
Streams Streams Rule Rule Set Rule Schema Object Rule
Name Type Name Type Level Name Name Type
-------------- ----------- ------------ -------- ------- ------ ----------- ----
STRM01_CAPTURE CAPTURE JOBS4 POSITIVE TABLE HR JOBS DML
STRM01_CAPTURE CAPTURE JOBS5 POSITIVE TABLE HR JOBS DDL
DBS1_TO_DBS2 PROPAGATION HR18 POSITIVE SCHEMA HR DDL
DBS1_TO_DBS2 PROPAGATION HR17 POSITIVE SCHEMA HR DML
APPLY APPLY HR20 POSITIVE SCHEMA HR DML
APPLY APPLY JOB_HISTORY2 NEGATIVE TABLE HR JOB_HISTORY DML
OE DEQUEUE RULE$_28 POSITIVE
この出力から、データベース内のOracle Streamsクライアントが使用するルールについて、次の情報が得られます。
DMLルールjobs4とDDLルールjobs5はいずれも、取得プロセスstrm01_captureのポジティブ・ルール・セットに含まれるhr.jobs表の表ルールである。
DMLルールhr17とDDLルールhr18はいずれも、伝播dbs1_to_dbs2のポジティブ・ルール・セットに含まれるhrスキーマのスキーマ・ルールである。
DMLルールhr20は、適用プロセスapplyのポジティブ・ルール・セットに含まれるhrスキーマのスキーマ・ルールである。
DMLルールjob_history2は、適用プロセスapplyのネガティブ・ルール・セットに含まれるhrスキーマの表ルールである。
ルールrule$_28は、メッセージ・クライアントoeのポジティブ・ルール・セットに含まれるメッセージ・ルールである。
ALL_STREAMS_RULESビューおよびDBA_STREAMS_RULESビューには、Oracle Streamsクライアントによって使用されるルール・セットに関する情報、Oracle Streamsルールの現在および元のルール条件、ルール条件が変更されたかどうか、各Oracle Streams サブセット・ルールのサブセット化操作とDML条件、各Oracle Streamsルールに指定されたソース・データベース、およびOracle Streamsメッセージ・ルールのメッセージ・タイプとメッセージ変数に関する情報も含まれます。
次のデータ・ディクショナリ・ビューでも、Oracle Streamsルールが表示されます。
ALL_STREAMS_GLOBAL_RULES
DBA_STREAMS_GLOBAL_RULES
ALL_STREAMS_MESSAGE_RULES
DBA_STREAMS_MESSAGE_RULES
ALL_STREAMS_SCHEMA_RULES
DBA_STREAMS_SCHEMA_RULES
ALL_STREAMS_TABLE_RULES
DBA_STREAMS_TABLE_RULES
これらのビューには、Oracle Streamsのルールのみが表示されます。DBMS_RULE_ADMパッケージによって行われたこれらのルールに対して手動で行われた変更や、DBMS_RULE_ADMパッケージを使用して作成されたルールは、表示されません。これらのビューには、各ルールの元のルール条件のみが表示されます。ルールの作成後にそのルール条件が変更されても、そのルールの最新のルール条件は表示されません。
特定のOracle Streamsクライアントによって使用されているルール・セット内のルールを判別するには、DBA_STREAMS_RULESデータ・ディクショナリ・ビューを問い合せます。たとえば、データベースがstrm01_applyという適用プロセスを実行しているとします。次の項では、この適用プロセスのポジティブ・ルール・セットおよびネガティブ・ルール・セット内のルールを判別する方法を説明します。
次の各項では、特定のOracle Streamsクライアントによって使用されるルール・セット内のルールを判別する方法を説明します。
次の問合せを実行すると、strm01_applyという適用プロセスのポジティブ・ルール・セットに含まれるすべてのルールが表示されます。
COLUMN RULE_OWNER HEADING 'Rule Owner' FORMAT A10
COLUMN RULE_NAME HEADING 'Rule|Name' FORMAT A12
COLUMN STREAMS_RULE_TYPE HEADING 'Oracle Streams|Rule|Level' FORMAT A7
COLUMN SCHEMA_NAME HEADING 'Schema|Name' FORMAT A6
COLUMN OBJECT_NAME HEADING 'Object|Name' FORMAT A11
COLUMN RULE_TYPE HEADING 'Rule|Type' FORMAT A4
COLUMN SOURCE_DATABASE HEADING 'Source' FORMAT A10
COLUMN INCLUDE_TAGGED_LCR HEADING 'Apply|Tagged|LCRs?' FORMAT A9
SELECT RULE_OWNER,
RULE_NAME,
STREAMS_RULE_TYPE,
SCHEMA_NAME,
OBJECT_NAME,
RULE_TYPE,
SOURCE_DATABASE,
INCLUDE_TAGGED_LCR
FROM DBA_STREAMS_RULES
WHERE STREAMS_NAME = 'STRM01_APPLY' AND
RULE_SET_TYPE = 'POSITIVE';
この問合せで行が戻された場合、適用プロセスは、ルールがTRUEと評価される変更を含むLCRを適用します。
出力は次のようになります。
Oracle Streams Apply
Rule Rule Schema Object Rule Tagged
Rule Owner Name Level Name Name Type Source LCRs?
---------- --------------- ------- ------ ----------- ---- ---------- ---------
STRMADMIN HR20 SCHEMA HR DML DBS1.EXAM NO
PLE.COM
STRMADMIN HR21 SCHEMA HR DDL DBS1.EXAM NO
PLE.COM
この問合せによって返されたOracle Streamsルールのルール条件が変更されていないとすると、これらの結果は、hrスキーマに対してdbs1.example.comデータベースで発生したDML変更およびDDL変更を含むLCRが、適用プロセスによって適用されることを示します。これらのLCRを適用するように適用プロセスに指示するポジティブ・ルール・セット内のルールは、所有者がstrmadminユーザーで、名前はhr20およびhr21です。また、適用プロセスではこれらのルールの1つを満たすLCRが適用されますが、LCR内のタグがNULLの場合にかぎります。
Oracle Streamsルールのルール条件が変更された場合は、現行のルール条件をチェックして、ルールがOracle Streamsクライアントに及ぼす影響を判断する必要があります。ルール条件が変更されたOracle StreamsルールのSAME_RULE_CONDITION列はNO となります。
次の問合せは、strm01_applyという適用プロセスのネガティブ・ルール・セット内にあるすべてのルールを表示しています。
COLUMN RULE_OWNER HEADING 'Rule Owner' FORMAT A10
COLUMN RULE_NAME HEADING 'Rule|Name' FORMAT A15
COLUMN STREAMS_RULE_TYPE HEADING 'Oracle Streams|Rule|Level' FORMAT A7
COLUMN SCHEMA_NAME HEADING 'Schema|Name' FORMAT A6
COLUMN OBJECT_NAME HEADING 'Object|Name' FORMAT A11
COLUMN RULE_TYPE HEADING 'Rule|Type' FORMAT A4
COLUMN SOURCE_DATABASE HEADING 'Source' FORMAT A10
COLUMN INCLUDE_TAGGED_LCR HEADING 'Apply|Tagged|LCRs?' FORMAT A9
SELECT RULE_OWNER,
RULE_NAME,
STREAMS_RULE_TYPE,
SCHEMA_NAME,
OBJECT_NAME,
RULE_TYPE,
SOURCE_DATABASE,
INCLUDE_TAGGED_LCR
FROM DBA_STREAMS_RULES
WHERE STREAMS_NAME = 'APPLY' AND
RULE_SET_TYPE = 'NEGATIVE';
この問合せで行が戻された場合、適用プロセスは、ルールがTRUEと評価される変更を含むLCRを廃棄します。
出力は次のようになります。
Oracle Streams Apply
Rule Rule Schema Object Rule Tagged
Rule Owner Name Level Name Name Type Source LCRs?
---------- --------------- ------- ------ ----------- ---- ---------- ---------
STRMADMIN JOB_HISTORY22 TABLE HR JOB_HISTORY DML DBS1.EXAMP YES
LE.COM
STRMADMIN JOB_HISTORY23 TABLE HR JOB_HISTORY DDL DBS1.EXAMP YES
LE.COM
この問合せによって返されたOracle Streamsルールのルール条件が変更されていないとすると、これらの結果は、hr.job_history表に対してdbs1.example.comデータベースで発生したDML変更およびDDL変更を含むLCRが、適用プロセスによって廃棄されることを示します。これらのLCRを適用するように適用プロセスに指示するネガティブ・ルール・セット内のルールは、所有者がstrmadminで、名前はjob_history22およびjob_history23です。また、LCRのタグの値に関係なく、適用プロセスではこれらのルールの1つを満たすLCRが廃棄されます。
Oracle Streamsルールのルール条件が変更された場合は、現行のルール条件をチェックして、ルールがOracle Streamsクライアントに及ぼす影響を判断する必要があります。ルール条件が変更されたOracle StreamsルールのSAME_RULE_CONDITION列はNO となります。
ルールの名前がわかっている場合は、そのルール条件を表示できます。たとえば、「特定のOracle Streamsクライアントによって使用されるOracle Streamsルールの表示」の問合せで返されるルールについて考えてみます。このルールの名前はhr1で、次の問合せを実行するとその条件を表示できます。
SET LONG 8000
SET PAGES 8000
SELECT RULE_CONDITION "Current Rule Condition"
FROM DBA_STREAMS_RULES
WHERE RULE_NAME = 'HR1' AND
RULE_OWNER = 'STRMADMIN';
出力は次のようになります。
Current Rule Condition -------------------------------------------------------------------------------- ((((:dml.get_object_owner() = 'HR') and :dml.get_source_database_name() = 'DA.EX AMPLE.COM' )) and (:dml.get_compatible() <= dbms_streams.compatible_11_2))
Oracle Streamsルールのルール条件は変更できます。ルール条件を変更すると、Oracle Streamsルールを使用するOracle Streamsクライアントの動作が変化する場合があります。また、変更によってはルール評価のパフォーマンスが低下することもあります。
次の問合せを実行すると、条件が変更された各Oracle Streamsルールのルール名、元のルール条件および現行のルール条件が表示されます。
COLUMN RULE_NAME HEADING 'Rule Name' FORMAT A12 COLUMN ORIGINAL_RULE_CONDITION HEADING 'Original Rule Condition' FORMAT A33 COLUMN RULE_CONDITION HEADING 'Current Rule Condition' FORMAT A33 SET LONG 8000 SET PAGES 8000 SELECT RULE_NAME, ORIGINAL_RULE_CONDITION, RULE_CONDITION FROM DBA_STREAMS_RULES WHERE SAME_RULE_CONDITION = 'NO';
出力は次のようになります。
Rule Name Original Rule Condition Current Rule Condition
------------ --------------------------------- ---------------------------------
HR20 ((:dml.get_object_owner() = 'HR') ((:dml.get_object_owner() = 'HR')
and :dml.is_null_tag() = 'Y' ) and :dml.is_null_tag() = 'Y' and
:dml.get_object_name() != 'JOB_H
ISTORY')
この例で、出力はhr20ルールの条件が変更されたことを示しています。最初、このスキーマ・ルールは、hrスキーマに対するすべての変更についてTRUEと評価されていました。このルールの現行の条件では、hr.job_history表に対するDML変更を除き、hrスキーマに対するすべての変更についてTRUEと評価されます。
|
注意: この項の問合せは、Oracle Streamsルールのみに使用できます。DBMS_RULE_ADMパッケージを使用して作成されたルールには適用されません。これは、これらのルールが常に、ORIGINAL_RULE_CONDITION列にNULL、およびSAME_RULE_CONDITION列にNULLが表示されるためです。 |
次の問合せを実行すると、データベース内のルール・セットごとにデフォルトの評価コンテキストが表示されます。
COLUMN RULE_SET_OWNER HEADING 'Rule Set|Owner' FORMAT A10
COLUMN RULE_SET_NAME HEADING 'Rule Set Name' FORMAT A20
COLUMN RULE_SET_EVAL_CONTEXT_OWNER HEADING 'Eval Context|Owner' FORMAT A12
COLUMN RULE_SET_EVAL_CONTEXT_NAME HEADING 'Eval Context Name' FORMAT A30
SELECT RULE_SET_OWNER,
RULE_SET_NAME,
RULE_SET_EVAL_CONTEXT_OWNER,
RULE_SET_EVAL_CONTEXT_NAME
FROM DBA_RULE_SETS;
出力は次のようになります。
Rule Set Eval Context Owner Rule Set Name Owner Eval Context Name ---------- -------------------- ------------ ------------------------------ STRMADMIN RULESET$_2 SYS STREAMS$_EVALUATION_CONTEXT STRMADMIN STRM02_QUEUE_R STRMADMIN AQ$_STRM02_QUEUE_TABLE_V STRMADMIN APPLY_OE_RS STRMADMIN OE_EVAL_CONTEXT STRMADMIN OE_QUEUE_R STRMADMIN AQ$_OE_QUEUE_TABLE_V STRMADMIN AQ$_1_RE STRMADMIN AQ$_OE_QUEUE_TABLE_V SUPPORT RS SUPPORT EVALCTX OE NOTIFICATION_QUEUE_R OE AQ$_NOTIFICATION_QUEUE_TABLE_V
次の問合せを実行すると、supportユーザーが所有するevalctxという評価コンテキストで使用される表に関する情報が表示されます。
COLUMN TABLE_ALIAS HEADING 'Table Alias' FORMAT A20
COLUMN TABLE_NAME HEADING 'Table Name' FORMAT A40
SELECT TABLE_ALIAS,
TABLE_NAME
FROM DBA_EVALUATION_CONTEXT_TABLES
WHERE EVALUATION_CONTEXT_OWNER = 'SUPPORT' AND
EVALUATION_CONTEXT_NAME = 'EVALCTX';
出力は次のようになります。
Table Alias Table Name -------------------- ---------------------------------------- PROB problems
次の問合せを実行すると、supportユーザーが所有するevalctxという評価コンテキストによって使用される変数に関する情報が表示されます。
COLUMN VARIABLE_NAME HEADING 'Variable Name' FORMAT A15
COLUMN VARIABLE_TYPE HEADING 'Variable Type' FORMAT A15
COLUMN VARIABLE_VALUE_FUNCTION HEADING 'Variable Value|Function' FORMAT A20
COLUMN VARIABLE_METHOD_FUNCTION HEADING 'Variable Method|Function' FORMAT A20
SELECT VARIABLE_NAME,
VARIABLE_TYPE,
VARIABLE_VALUE_FUNCTION,
VARIABLE_METHOD_FUNCTION
FROM DBA_EVALUATION_CONTEXT_VARS
WHERE EVALUATION_CONTEXT_OWNER = 'SUPPORT' AND
EVALUATION_CONTEXT_NAME = 'EVALCTX';
出力は次のようになります。
Variable Value Variable Method
Variable Name Variable Type Function Function
--------------- --------------- -------------------- --------------------
CURRENT_TIME DATE timefunc
この項で説明する問合せを実行すると、ルール・セット内の全のルールに関する次の情報が表示されます。
ルールの所有者。
ルールの名前。
存在する場合は、ルールの評価コンテキスト。ルールに評価コンテキストがなく、そのルールをルール・セットに追加するときにADD_RULEプロシージャで評価コンテキストが指定されていない場合は、ルール・セットの評価コンテキストが継承されます。
ルールに評価コンテキストがある場合は、評価コンテキストの所有者。
たとえば、ユーザーstrmadminが所有するoe_queue_rというルール・セット内のルールごとにこの情報を表示するには、次の問合せを実行します。
COLUMN RULE_OWNER HEADING 'Rule Owner' FORMAT A10
COLUMN RULE_NAME HEADING 'Rule Name' FORMAT A20
COLUMN RULE_EVALUATION_CONTEXT_NAME HEADING 'Eval Context Name' FORMAT A27
COLUMN RULE_EVALUATION_CONTEXT_OWNER HEADING 'Eval Context|Owner' FORMAT A11
SELECT R.RULE_OWNER,
R.RULE_NAME,
R.RULE_EVALUATION_CONTEXT_NAME,
R.RULE_EVALUATION_CONTEXT_OWNER
FROM DBA_RULES R, DBA_RULE_SET_RULES RS
WHERE RS.RULE_SET_OWNER = 'STRMADMIN' AND
RS.RULE_SET_NAME = 'OE_QUEUE_R' AND
RS.RULE_NAME = R.RULE_NAME AND
RS.RULE_OWNER = R.RULE_OWNER;
出力は次のようになります。
Eval Contex
Rule Owner Rule Name Eval Context Name Owner
---------- -------------------- --------------------------- -----------
STRMADMIN HR1 STREAMS$_EVALUATION_CONTEXT SYS
STRMADMIN APPLY_LCRS STREAMS$_EVALUATION_CONTEXT SYS
STRMADMIN OE_QUEUE$3
STRMADMIN APPLY_ACTION
次の問合せでは、ユーザーstrmadminが所有するルール・セットhr_queue_r内の各ルールについて前述の条件が表示されます。
SET LONGCHUNKSIZE 4000
SET LONG 4000
COLUMN RULE_OWNER HEADING 'Rule Owner' FORMAT A15
COLUMN RULE_NAME HEADING 'Rule Name' FORMAT A15
COLUMN RULE_CONDITION HEADING 'Rule Condition' FORMAT A45
SELECT R.RULE_OWNER,
R.RULE_NAME,
R.RULE_CONDITION
FROM DBA_RULES R, DBA_RULE_SET_RULES RS
WHERE RS.RULE_SET_OWNER = 'STRMADMIN' AND
RS.RULE_SET_NAME = 'HR_QUEUE_R' AND
RS.RULE_NAME = R.RULE_NAME AND
RS.RULE_OWNER = R.RULE_OWNER;
出力は次のようになります。
Rule Owner Rule Name Rule Condition
--------------- --------------- ---------------------------------------------
STRMADMIN APPLY_ACTION hr.get_hr_action(tab.user_data) = 'APPLY'
STRMADMIN APPLY_LCRS :dml.get_object_owner() = 'HR' AND (:dml.get
_object_name() = 'DEPARTMENTS' OR
:dml.get_object_name() = 'EMPLOYEES')
STRMADMIN HR_QUEUE$3 hr.get_hr_action(tab.user_data) != 'APPLY'
条件に指定パターンが含まれるデータベース内の各ルールをリストするには、DBMS_RULESデータ・ディクショナリ・ビューを問い合せ、DBMS_LOB.INSTRファンクションを使用して、ルール条件のパターンを検索します。たとえば、次の問合せでは、条件にパターン'HR'が含まれる各ルールがリストされます。
COLUMN RULE_OWNER HEADING 'Rule Owner' FORMAT A30 COLUMN RULE_NAME HEADING 'Rule Name' FORMAT A30 SELECT RULE_OWNER, RULE_NAME FROM DBA_RULES WHERE DBMS_LOB.INSTR(RULE_CONDITION, 'HR', 1, 1) > 0;
出力は次のようになります。
Rule Owner Rule Name ------------------------------ ------------------------------ STRMADMIN DEPARTMENTS4 STRMADMIN DEPARTMENTS5 STRMADMIN DEPARTMENTS6
データベース・インスタンスが最後に起動された後に実行されたすべてのルール・セット評価に関する統計を表示するには、V$RULE_SET_AGGREGATE_STATS動的パフォーマンス・ビューを問い合せます。
この項の問合せを実行すると、ルール・セット評価に関する次の情報が表示されます。
ルール・セット評価の数。
最初のヒットで停止するように指示されたルール・セット評価の数。
単純ルールのみを評価するように指示されたルール・セット評価の数。
SQLを発行しないでルール・セットが評価された回数。一般に、SQLを発行してルールを評価すると、発行しない場合よりコストが高くなります。
ルール・セット評価にかかったCPUタイム(センチセカンド)。
ルール・セット評価にかかった時間(センチセカンド)。
ルール・セット内のルールを評価するために発行されたSQLの数。
ルール・セット評価中に処理されたルール条件の数。
ルール・エンジン・クライアントに返されたTRUEルールの数。
ルール・エンジン ・クライアントに返されたMAYBEルールの数。
ルール・セット評価中に、変数値ファンクション、変数メソッド・ファンクションおよび評価ファンクションがコールされた回数。
次の問合せを実行すると、前述の情報が表示されます。
COLUMN NAME HEADING 'Name of Statistic' FORMAT A55 COLUMN VALUE HEADING 'Value' FORMAT 999999999 SELECT NAME, VALUE FROM V$RULE_SET_AGGREGATE_STATS;
出力は次のようになります。
Name of Statistic Value ------------------------------------------------------- ---------- rule set evaluations (all) 5584 rule set evaluations (first_hit) 5584 rule set evaluations (simple_rules_only) 3675 rule set evaluations (SQL free) 5584 rule set evaluation time (CPU) 179 rule set evaluation time (elapsed) 1053 rule set SQL executions 0 rule set conditions processed 11551 rule set true rules 10 rule set maybe rules 328 rule set user function calls (variable value function) 182 rule set user function calls (variable method function) 12794 rule set user function calls (evaluation function) 3857
|
注意: センチセカンドは、100分の1秒です。そのため、たとえば、前述の出力では、CPUタイムが1.79秒、経過時間が10.53秒です。 |
データベース・インスタンスが最後に起動された後に実行されたすべてのルール・セットの評価に関する情報を表示するには、V$RULE_SET動的パフォーマンス・ビューを問い合せます。この項で説明する問合せを実行すると、データベース内の各ルール・セットに関する次の情報が表示されます。
ルール・セットの所有者
ルール・セットの名前。
データベース・インスタンスが前回起動してから実施されたルール・セット評価の合計数。
データベース・インスタンスが最後に起動されてからルールを評価するためにSQLが実行された回数。一般に、SQLを発行してルールを評価すると、発行しない場合よりコストが高くなります。
データベース・インスタンスが最後に起動されてから、SQLを発行せずに実行されたルール・セット評価の合計数。
データベース・インスタンスが最後に起動されてから、ルール・セットを使用してルール・エンジン・クライアントに返されたTRUEルールの合計数。
データベース・インスタンスが最後に起動されてから、ルール・セットを使用してルール・エンジン・クライアントに戻されたMAYBEルールの合計数。
次の問合せを実行すると、データベース内の各ルール・セットに関する前述の情報が表示されます。
COLUMN OWNER HEADING 'Rule Set|Owner' FORMAT A9
COLUMN NAME HEADING 'Rule Set|Name' FORMAT A11
COLUMN EVALUATIONS HEADING 'Total|Evaluations' FORMAT 99999999
COLUMN SQL_EXECUTIONS HEADING 'SQL|Executions' FORMAT 99999999
COLUMN SQL_FREE_EVALUATIONS HEADING 'SQL Free|Evaluations' FORMAT 99999999
COLUMN TRUE_RULES HEADING 'True|Rules' FORMAT 999999999
COLUMN MAYBE_RULES HEADING 'Maybe|Rules' FORMAT 99999999
SELECT OWNER,
NAME,
EVALUATIONS,
SQL_EXECUTIONS,
SQL_FREE_EVALUATIONS,
TRUE_RULES,
MAYBE_RULES
FROM V$RULE_SET;
出力は次のようになります。
Rule Set Rule Set Total SQL SQL Free True Maybe Owner Name Evaluations Executions Evaluations Rules Rules --------- ----------- ----------- ---------- ----------- ---------- --------- SYS ALERT_QUE_R 3 0 0 2 0 STRMADMIN RULESET$_4 86 0 0 43 1 STRMADMIN RULESET$_11 458 0 0 11 0 STRMADMIN RULESET$_9 87 0 0 1 42 STRMADMIN RULESET$_7 87 0 0 44 1
|
注意: データベースのライブラリ・キャッシュのサイズが大きい場合、V$RULE_SETビューを問い合せると、パフォーマンスが低下するおそれがあります。 |
データベース・インスタンスが最後に起動された後のルール・セットの評価で使用されたリソースを判断するには、V$RULE_SET動的パフォーマンス・ビューを問い合せます。データベース・インスタンスが最後に起動されてからルール・セットが複数回評価されている場合、CPUタイム、評価時間、使用された共有メモリー(バイト)などの一部の統計は累積されます。
この項で説明する問合せを実行すると、データベース内の各ルール・セットに関する次の情報が表示されます。
ルール・セットの所有者
ルール・セットの名前
データベース・インスタンスが最後に起動された後のルール・セット評価に使用された合計CPUタイム(秒)
データベース・インスタンスが最後に起動された後のルール・セット評価に使用された合計時間(秒)
データベース・インスタンスが最後に起動された後のルール・セット評価に使用された共有メモリーの合計量(バイト)
次の問合せを実行すると、データベース内の各ルール・セットに関する前述の情報が表示されます。
COLUMN OWNER HEADING 'Rule Set|Owner' FORMAT A15
COLUMN NAME HEADING 'Rule Set Name' FORMAT A15
COLUMN CPU_SECONDS HEADING 'Seconds|of CPU|Time' FORMAT 999999.999
COLUMN ELAPSED_SECONDS HEADING 'Seconds of|Evaluation|Time' FORMAT 999999.999
COLUMN SHARABLE_MEM HEADING 'Bytes|of Shared|Memory' FORMAT 999999999
SELECT OWNER,
NAME,
(CPU_TIME/100) CPU_SECONDS,
(ELAPSED_TIME/100) ELAPSED_SECONDS,
SHARABLE_MEM
FROM V$RULE_SET;
出力は次のようになります。
Seconds Seconds of Bytes
Rule Set of CPU Evaluation of Shared
Owner Rule Set Name Time Time Memory
--------------- --------------- ----------- ----------- ----------
SYS ALERT_QUE_R .230 .490 25120
STRMADMIN RULESET$_4 .060 .970 25097
STRMADMIN RULESET$_11 .040 .030 25098
STRMADMIN RULESET$_9 .220 3.040 25505
STRMADMIN RULESET$_7 .040 .380 21313
|
注意: データベースのライブラリ・キャッシュのサイズが大きい場合、V$RULE_SETビューを問い合せると、パフォーマンスが低下するおそれがあります。 |
データベース・インスタンスが最後に起動された後に実行された特定ルールの評価統計を表示するには、V$RULE動的パフォーマンス・ビューを問い合せます。この項で説明する問合せを実行すると、データベース内の各ルール・セットに関する次の情報が表示されます。
データベース・インスタンスが最後に起動されてから、ルールがTRUEと評価された合計回数。
データベース・インスタンスが最後に起動されてから、ルールがMAYBEと評価された合計回数。
データベース・インスタンスが最後に起動されてから、SQLを発行したルール評価の合計数。一般的に、SQLを発行してルールを評価すると、発行しない場合よりコストが高くなります。
たとえば、次の問合せを実行すると、strmadminスキーマのlocations25ルールに関する前述の情報が表示されます。
COLUMN TRUE_HITS HEADING 'True Evaluations' FORMAT 99999999999
COLUMN MAYBE_HITS HEADING 'Maybe Evaluations' FORMAT 99999999999
COLUMN SQL_EVALUATIONS HEADING 'SQL Evaluations' FORMAT 99999999999
SELECT TRUE_HITS, MAYBE_HITS, SQL_EVALUATIONS
FROM V$RULE
WHERE RULE_OWNER = 'STRMADMIN' AND
RULE_NAME = 'LOCATIONS25';
出力は次のようになります。
True Evaluations Maybe Evaluations SQL Evaluations
---------------- ----------------- ---------------
1518 154 0