CTX_REPORT
パッケージを使用して、索引および問合せのレポートを作成します。このレポートを使用すると、アプリケーションの微調整およびトラブルシューティングができます。
CTX_REPORT
パッケージには、次のプロシージャが含まれています。
これらのプロシージャにより、索引メタデータの設定、使用される索引付けオブジェクト、オブジェクトの属性の設定および(CTX_REPORT.DESCRIBE_INDEX
用の)索引パーティション情報(ある場合)を含む、既存の索引またはポリシーについて説明するレポートが作成されます。これらのプロシージャは、索引関連の問題の診断で特に役立ちます。
これは、単純なCONTEXT索引上で実行される、DESCRIBE_INDEX
のサンプル出力です。
================================================================= INDEX DESCRIPTION ================================================================= index name: "DR_TEST"."TDRBPRX0" index id: 1160 index type: context base table: "DR_TEST"."TDRBPR" primary key column: ID text column: TEXT2 text column type: VARCHAR2(80) language column: format column: charset column: ================================================================= INDEX OBJECTS ================================================================= datastore: DIRECT_DATASTORE filter: NULL_FILTER section group: NULL_SECTION_GROUP lexer: BASIC_LEXER wordlist: BASIC_WORDLIST stemmer: ENGLISH fuzzy_match: GENERIC stoplist: BASIC_STOPLIST stop_word: teststopword storage: BASIC_STORAGE r_table_clause: lob (data) store as (cache) i_index_clause: compress 2
CREATE_INDEX_SCRIPT
は、指定したテキスト索引の複製を作成できるSQL*Plusスクリプトを作成します。索引はあるが、その索引の作成に使用された元のスクリプト(ある場合)がないとき、索引を再作成できるようにする場合は、これを使用します。たとえば、誤ってスクリプトを削除した場合、CREATE_INDEX_SCRIPT
で再作成できます。同じように、他のユーザーから索引を継承したが、その索引を作成したスクリプトは継承しなかった場合、CREATE_INDEX_SCRIPT
が役に立ちます。
索引ではなくポリシーを再作成できるという点を除くと、CREATE_POLICY_SCRIPT
はCREATE_INDEX_SCRIPT
と同様に動作します。
これは、(完全なリスト表示ではない)単純なCONTEXT索引上で実行される、CREATE_INDEX_SCRIPT
のサンプル出力です。
begin ctx_ddl.create_preference('"TDRBPRX0_DST"','DIRECT_DATASTORE'); end; / ... / begin ctx_ddl.create_section_group('"TDRBPRX0_SGP"','NULL_SECTION_GROUP'); end; / ... begin ctx_ddl.create_preference('"TDRBPRX0_WDL"','BASIC_WORDLIST'); ctx_ddl.set_attribute('"TDRBPRX0_WDL"','STEMMER','ENGLISH'); ctx_ddl.set_attribute('"TDRBPRX0_WDL"','FUZZY_MATCH','GENERIC'); end; / begin ctx_ddl.create_stoplist('"TDRBPRX0_SPL"','BASIC_STOPLIST'); ctx_ddl.add_stopword('"TDRBPRX0_SPL"','teststopword'); end; / ... / begin ctx_output.start_log('TDRBPRX0_LOG'); end; / create index "DR_TEST"."TDRBPRX0" on "DR_TEST"."TDRBPR" ("TEXT2") indextype is ctxsys.context parameters(' datastore "TDRBPRX0_DST" filter "TDRBPRX0_FIL" section group "TDRBPRX0_SGP" lexer "TDRBPRX0_LEX" wordlist "TDRBPRX0_WDL" stoplist "TDRBPRX0_SPL" storage "TDRBPRX0_STO" ') /
このプロシージャは、内部索引オブジェクト名とその表領域、割当てサイズおよび使用サイズを示すレポートを作成します。DBAが索引のサイズを監視する必要がある場合(たとえば、ディスク領域が不足している場合)は、これを使用すると便利です。
このプロシージャのサンプル出力は次のようになります(部分的にリスト表示します)。
================================================================= INDEX SIZE FOR DR_TEST.TDRBPRX10 ================================================================= TABLE: DR_TEST.DR$TDRBPRX10$I TABLESPACE NAME: DRSYS BLOCKS ALLOCATED: 4 BLOCKS USED: 1 BYTES ALLOCATED: 8,192 (8.00 KB) BYTES USED: 2,048 (2.00 KB) INDEX (LOB): DR_TEST.SYS_IL0000023161C00006$$ TABLE NAME: DR_TEST.DR$TDRBPRX10$I TABLESPACE NAME: DRSYS BLOCKS ALLOCATED: 5 BLOCKS USED: 2 BYTES ALLOCATED: 10,240 (10.00 KB) BYTES USED: 4,096 (4.00 KB) INDEX (NORMAL): DR_TEST.DR$TDRBPRX10$X TABLE NAME: DR_TEST.DR$TDRBPRX10$I TABLESPACE NAME: DRSYS BLOCKS ALLOCATED: 4 BLOCKS USED: 2 BYTES ALLOCATED: 8,192 (8.00 KB) BYTES USED: 4,096 (4.00 KB)
INDEX_STATS
により、索引付けされるドキュメントの数、索引に含まれる一意のトークンの数、トークンの平均サイズ、索引の断片化情報など、索引に関する様々な統計が算出されます。INDEX_STATS
の使用例は、ストップリストの最適化に含まれる場合があります。
このプロシージャの出力例は、『Oracle Textリファレンス』を参照してください。
このプロシージャは、ログに記録された問合せのレポートを作成します。これを使用すると、単純な分析を実行できます。問合せ分析を行うと、次のことがわかります。
行われた問合せ
成功した問合せ
失敗した問合せ
各問合せが行われた回数
これらの要素を様々な方法で組み合せ、たとえばアプリケーションで失敗した問合せの上位50位までを調べることが可能です。
このプロシージャの出力例は、『Oracle Textリファレンス』を参照してください。
TOKEN_INFO
は、主に問合せに関する問題の診断(たとえば、索引データが破損していないかの確認)で使用されます。たとえば、これを使用すると、どのドキュメントが予期しないトークンまたは不正なトークンを生成しているかがわかります。
これは参照ファンクションであり、他のファンクション(CTX_DDL.OPTIMIZE_INDEX
、CTX_REPORT.TOKEN_INFO
など)に対する入力として主に使用されます。