5 CTX_ADMパッケージ
この章の内容は以下のとおりです。
5.1 CTX_ADMパッケージのプロシージャについて
CTX_ADM
PL/SQLパッケージには、索引プリファレンスを管理するための管理プロシージャが用意されています。
CTX_ADM
パッケージには、次のプロシージャが含まれています。
名前 | 説明 |
---|---|
索引のステータスを |
|
削除したテキスト表のデータベース・オブジェクトをクリーン・アップします。 |
|
|
|
索引作成のシステム・レベルのデフォルトを設定します。 |
注意:
CTX_ADM
パッケージを使用できるのは、CTXSYS
ユーザーのみです。
CTX_ADM
パッケージのAPIは、スキーマまたは所有者名を接頭辞として使用する識別子をサポートしていません。
5.2 MARK_FAILED
MARK_FAILED
プロシージャを使用して索引のステータスをLOADING
からFAILED
へ変更します。
まれに、CREATE INDEX
またはALTER INDEX
に失敗すると、索引のステータスがLOADING
のままになる場合があります。索引のステータスがLOADING
になると、RESUME INDEX
を使用してリカバリしようとしてもブロックされます。このような場合は、RESUME INDEX
で索引をリカバリできるように、CTX_ADM.MARK_FAILED
を使用してステータスをLOADING
からFAILED
に強制的に変更します。
CTX_ADM.MARK_FAILED
を実行するには、CTXSYS
としてログオンする必要があります。
警告:
CTX_ADM.MARK_FAILED
を使用する場合は、注意が必要です。これは最後の手段として使用し、索引に影響を与えるセッションが他にない場合にのみ使用するようにしてください。通常、別のセッションでCREATE
またはALTER
INDEX
を使用して索引を作成中の場合、CTX_ADM.MARK_FAILED
は正常に実行されません。ただし、場合によっては索引の作成や変更において、CTX_ADM.MARK_FAILED
が正常に実行できるタイミングがあります。このとき、別のセッションで索引を作成中であっても、索引が失敗としてマーク付けされます。
CTX_ADM.MARK_FAILED
はローカル・パーティション索引で機能します。ただし、すべてのパーティションのステータスがFAILED
に変更されます。したがって、CTX_ADM.MARK_FAILED
を使用した後は、ALTER INDEX REBUILD PARTITION PARAMETERS ('RESUME')
を使用してすべての索引パーティションを再構築する必要があります。この操作の後にALTER INDEX PARAMETER ('RESUME')
を実行すると、索引パーティションのステータスが有効にリセットされます。MARK_FAILED
操作の前に正常に構築された索引パーティションは、再構築されません。
構文
CTX_ADM.MARK_FAILED( owner_name in VARCHAR2, index_name in VARCHAR2);
例
begin CTX_ADM.MARK_FAILED('owner_1', 'index_1'); end;
5.3 RECOVER
RECOVER
プロシージャは、テキスト・データ・ディクショナリをクリーン・アップし、残りのプリファレンスなどのオブジェクトを削除します。
構文
CTX_ADM.RECOVER;
例
begin ctx_adm.recover; end;
5.4 RESET_AUTO_OPTIMIZE_STATUS
RESET_AUTO_OPTIMIZE_STATUS
を使用して、CTX_AUTO_OPTIMIZE_STATUSビューをリセット(またはその内容を削除)します。
CTX_ADM.RESET_AUTO_OPTIMIZE_STATUS
を実行するには、CTXSYS
としてログオンする必要があります。
構文
CTX_ADM.RESET_AUTO_OPTIMIZE_STATUS;
例
begin ctx_adm.reset_auto_optimize_status; end;
5.5 SET_PARAMETER
SET_PARAMETER
プロシージャは、索引作成用とほぼリアルタイムの索引用のシステム・レベルのパラメータを設定します。
構文
CTX_ADM.SET_PARAMETER(param_name IN VARCHAR2, param_value IN VARCHAR2);
-
max_index_memory
(索引付けに使用可能な最大メモリー) -
default_index_memory
(索引付けに割り当てられたデフォルトのメモリー) -
ctx_doc_key_type
(CTX_DOC
プロシージャ用のデフォルトの入力キー型) -
file_access_role
(FILE
またはURL
データストアを使用する場合の索引作成用のデフォルトのデータベース・ロール名) -
auto_optimize
(自動最適化のENABLE
またはDISABLE
) -
default_datastore
(デフォルトのデータストア・プリファレンス) -
default_filter_file
(ファイルに格納されているデータ用のデフォルトのフィルタ・プリファレンス) -
default_filter_text
(デフォルトのテキスト・フィルタ・プリファレンス) -
default_filter_binary
(デフォルトのバイナリ・フィルタ・プリファレンス) -
default_section_html
(デフォルトのhtmlセクション・グループ・プリファレンス) -
default_section_xml
(デフォルトのxmlセクション・グループ・プリファレンス) -
default_section_text
(デフォルトのテキスト・セクション・グループ・プリファレンス) -
default_lexer
(デフォルトのレクサー・プリファレンス) -
default_wordlist
(デフォルトのワードリスト・プリファレンス) -
default_stoplist
(デフォルトのストップリスト・プリファレンス) -
default_storage
(デフォルトの記憶域プリファレンス) -
default_ctxcat_lexer
(CTXCAT索引のデフォルトのレクサー・プリファレンス) -
default_ctxcat_stoplist
(CTXCAT索引のデフォルトのストップリスト・プリファレンス) -
default_ctxcat_storage
(デフォルトのCTXCAT索引記憶域) -
default_ctxcat_wordlist
(CTXCAT索引のデフォルトのワードリスト・プリファレンス) -
default_ctxrule_lexer
(CTXRULE索引のデフォルトのレクサー) -
default_ctxrule_stoplist
(CTXRULE索引のデフォルトのストップリスト) -
default_ctxrule_storage
(CTXRULE索引のデフォルト記憶域) -
default_ctxrule_wordlist
(CTXRULE索引のデフォルトのワードリスト)関連項目:
これらのパラメータに対するデフォルト値の詳細は、「Oracle Text索引付けの要素」の「システム・パラメータ」を参照してください。
注意:
log_directory
(CTX_OUTPUT
ファイルのディレクトリ)およびauto_optimize_logfile
(自動最適化ログ・ファイルの元ファイル名)を変更することはできません。これらのパラメータでは、APIコールはいずれも無視されます。
- param_value
-
パラメータに割り当てる値を指定します。
max_index_memory
およびdefault_index_memory
の場合、指定する値は次の構文になります。number[K|M|G]
KはKB、MはMB、GはGBを表します。
その他の各パラメータに対しては、プリファレンス名を指定し、索引付けのデフォルトとして使用します。
auto_optimize
に対して指定する値は、ENABLE
またはDISABLE
です。このパラメータをENABLE
に設定すると、自動最適化ジョブを開始できます。このパラメータをDISABLE
に設定すると自動最適化ジョブは開始できず、現在実行中の最適化ジョブはすべて停止します。
例
MAX_INDEX_MEMORY
値を変更するには、次のようにします:
exec ctx_adm.set_parameter(‘MAX_INDEX_MEMORY’, 100G);
索引文のメモリー・パラメータは、最大256GBです(MAX_INDEX_MEMORY
パラメータが明示的に低い値で指定されていない場合)。
create index myindex1 on mytab(textcol) indextype is ctxsys.context parameters ('memory 256G');
exec ctx_ddl.sync_index(' myindex2', memory=> '256G');
例
begin ctx_adm.set_parameter('default_lexer', 'my_lexer'); end;