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

前
次
 

CONTEXT索引のSTAGE_ITABオプションを使用した応答時間の短縮

Oracle Textに用意されているSTAGE_ITABオプションを使用すると、ほぼリアルタイムの索引付けにDML操作を多用するCONTEXT索引の問合せパフォーマンスを改善できます。

STAGE_ITAB索引オプションを使用しない場合は、新しいドキュメントがCONTEXT索引に追加されるたびに、ドキュメントを検索可能にするためにSYNC_INDEXがコールされます。こうすると、$I表に新しい行が作成されるため、$I表で断片化が大きくなります。これによって、問合せパフォーマンスの低下につながります。

STAGE_ITAB索引オプションを有効にすると、新しいドキュメントに関する情報は$I表ではなく$Gステージング表に格納されます。これによって$I表は断片化しなくなるため、問合せパフォーマンスが低下しません。

STAGE_ITAB索引オプションを有効にすると、$H Bツリー索引も$G表に作成されます。$G表と$H Bツリー索引は、$I表と$X Bツリー索引と同等です。

$G表に存在する行を最適化して$I表に移動するには、MERGE最適化モードを使用します。

注意:

$G表は、KEEPプールに格納されます。STAGE_ITAB問合せオプションで問合せパフォーマンスの向上を図るためには、十分なKEEPプール・メモリーを割り当ててください。

STAGE_ITAB索引オプションを指定してCONTEXT索引を作成するには、まずSTAGE_ITAB記憶域属性の値をYESに設定して基本記憶域プリファレンスを作成し、CONTEXT索引の作成時にこの記憶域プリファレンスを指定します。

次の例は、基本記憶域プリファレンスmystoreを作成し、そのSTAGE_ITAB記憶域属性の値をYESに設定します。

exec ctx_ddl.create_preference('mystore', 'BASIC_STORAGE');
exec ctx_ddl.set_attribute('mystore', 'STAGE_ITAB', 'YES');

ALTER INDEX文の再構築オプションを使用すれば、パーティション化されていない既存のCONTEXT索引に対してSTAGE_ITAB索引オプションを有効にすることもできます。

alter index IDX rebuild parameters('replace storage mystore');

パーティション化されていないCONTEXT索引に対してSTAGE_ITABオプションを無効にするには、STAGE_ITAB記憶域属性の値をNOに設定して既存の記憶域プリファレンス(mystore)を更新してから、索引を再構築します。

exec ctx_ddl.set_attribute('mystore', 'STAGE_ITAB', 'NO');
alter index idx rebuild('replace storage mystore');

この操作は、MERGE最適化モードを使用して最適化プロセスを実行してから、$G表を削除します。

ALTER INDEX文の再構築オプションを、パーティション化されているCONTEXT索引に使用して、STAGE_ITABオプションの有効化と無効化を行うことはできません。

次の例は、CONTEXTパーティション索引idxに対してSTAGE_ITABオプションを有効にします。

alter index idx parameters('add stage_itab');

次の例は、CONTEXTパーティション索引idxに対してSTAGE_ITABオプションを無効にします。

alter index idx parameters('remove stage_itab');

注意:

CONTEXT索引にSTAGE_ITAB索引オプションを使用するには、BASIC_STORAGEのプリファレンスg_index_clauseg_table_clauseも指定する必要があります。BASIC_STORAGEの詳細は、『Oracle Textリファレンス』を参照してください。