次の各項では、ルール、ルール・セットおよび評価コンテキストの監視について説明します。
注意: Oracle Enterprise ManagerコンソールのOracle Streamsツールも、Oracle Streams環境を監視するための優れた手段です。詳細は、Oracle Streamsツールのオンライン・ヘルプを参照してください。 |
関連項目:
|
Oracle Streamsルールは、DBMS_STREAMS_ADM
パッケージまたはOracle Enterprise Manager Consoleの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.is_null_tag() = 'Y' and :dml.get_source_database_name() = 'DBS1.EXAMPLE.COM' )
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 9999999999 COLUMN SQL_EXECUTIONS HEADING 'SQL|Executions' FORMAT 9999999999 COLUMN SQL_FREE_EVALUATIONS HEADING 'SQL Free|Evaluations' FORMAT 9999999999 COLUMN TRUE_RULES HEADING 'True|Rules' FORMAT 99999999999 COLUMN MAYBE_RULES HEADING 'Maybe|Rules' FORMAT 9999999999 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 --------- ----------- ----------- ---------- ----------- ------- ------- STRMADMIN RULESET$_18 403 0 403 0 200 STRMADMIN RULESET$_9 3454 0 3454 5 64
注意: データベースのライブラリ・キャッシュのサイズが大きい場合、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 --------------- --------------- ----------- ----------- ---------- STRMADMIN RULESET$_18 .840 8.550 444497 STRMADMIN RULESET$_9 .700 1.750 444496
注意: データベースのライブラリ・キャッシュのサイズが大きい場合、V$RULE_SET ビューを問い合せると、パフォーマンスが低下するおそれがあります。 |
データベース・インスタンスが最後に起動された後に実行された特定ルールの評価統計を表示するには、V$RULE
動的パフォーマンス・ビューを問い合せます。この項で説明する問合せを実行すると、データベース内の各ルール・セットに関する次の情報が表示されます。
データベース・インスタンスが最後に起動されてから、ルールがTRUE
と評価された合計回数。
データベース・インスタンスが最後に起動されてから、ルールがMAYBE
と評価された合計回数。
データベース・インスタンスが最後に起動されてから、SQLを発行したルール評価の合計数。一般的に、SQLを発行してルールを評価すると、発行しない場合よりコストが高くなります。
たとえば、次の問合せを実行すると、strmadmin
スキーマのlocations25
ルールに関する前述の情報が表示されFます。
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