ヘッダーをスキップ
Oracle® Textアプリケーション開発者ガイド
12cリリース1 (12.1)
B71317-04
  目次へ移動
目次
索引へ移動
索引

前
次
 

CTX_REPORTパッケージ

CTX_REPORTパッケージを使用して、索引および問合せのレポートを作成します。このレポートを使用すると、アプリケーションの微調整およびトラブルシューティングができます。

関連項目:

このパッケージの詳細は、『Oracle Textリファレンス』を参照してください。

CTX_REPORTパッケージには、次のプロシージャが含まれています。

CTX_REPORT.DESCRIBE_INDEX
CTX_REPORT.DESCRIBE_POLICY

これらのプロシージャにより、索引メタデータの設定、使用される索引付けオブジェクト、オブジェクトの属性の設定および(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
CTX_REPORT.CREATE_INDEX_SCRIPT
CTX_REPORT.CREATE_POLICY_SCRIPT

CREATE_INDEX_SCRIPTは、指定したテキスト索引の複製を作成できるSQL*Plusスクリプトを作成します。索引はあるが、その索引の作成に使用された元のスクリプト(ある場合)がないとき、索引を再作成できるようにする場合は、これを使用します。たとえば、誤ってスクリプトを削除した場合、CREATE_INDEX_SCRIPTで再作成できます。同じように、他のユーザーから索引を継承したが、その索引を作成したスクリプトは継承しなかった場合、CREATE_INDEX_SCRIPTが役に立ちます。

索引ではなくポリシーを再作成できるという点を除くと、CREATE_POLICY_SCRIPTCREATE_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"
  ')
/
CTX_REPORT.INDEX_SIZE

このプロシージャは、内部索引オブジェクト名とその表領域、割当てサイズおよび使用サイズを示すレポートを作成します。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)
CTX_REPORT.INDEX_STATS

INDEX_STATSにより、索引付けされるドキュメントの数、索引に含まれる一意のトークンの数、トークンの平均サイズ、索引の断片化情報など、索引に関する様々な統計が算出されます。INDEX_STATSの使用例は、ストップリストの最適化に含まれる場合があります。

このプロシージャの出力例は、『Oracle Textリファレンス』を参照してください。

CTX_REPORT.QUERY_LOG_SUMMARY

このプロシージャは、ログに記録された問合せのレポートを作成します。これを使用すると、単純な分析を実行できます。問合せ分析を行うと、次のことがわかります。

  • 行われた問合せ

  • 成功した問合せ

  • 失敗した問合せ

  • 各問合せが行われた回数

これらの要素を様々な方法で組み合せ、たとえばアプリケーションで失敗した問合せの上位50位までを調べることが可能です。

このプロシージャの出力例は、『Oracle Textリファレンス』を参照してください。

CTX_REPORT.TOKEN_INFO

TOKEN_INFOは、主に問合せに関する問題の診断(たとえば、索引データが破損していないかの確認)で使用されます。たとえば、これを使用すると、どのドキュメントが予期しないトークンまたは不正なトークンを生成しているかがわかります。

CTX_REPORT.TOKEN_TYPE

これは参照ファンクションであり、他のファンクション(CTX_DDL.OPTIMIZE_INDEXCTX_REPORT.TOKEN_INFOなど)に対する入力として主に使用されます。