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

前
次
 

索引の同期化

索引を同期化すると、元表に対する保留中のすべての更新および挿入が処理されます。同期化は、PL/SQLでCTX_DDL.SYNC_INDEXプロシージャを使用して実行します。次の項では、索引の同期化で継続期間およびロック動作を制御する方法を説明します。

SYNC_INDEXによる索引の同期化

次の例では、2MBのメモリーを使用して索引を同期化します。

begin
ctx_ddl.sync_index('myindex', '2M');
end;

関連項目:

CTX_DDL.SYNC_INDEX文の構文の詳細は、『Oracle Textリファレンス』を参照してください。

SYNC_INDEXのmaxtimeパラメータ

sync_indexプロシージャには、optimize_indexのように、操作に対し分単位の提示された時間制限を指定するmaxtimeパラメータが含まれます。sync_indexは、指定の時間制限内に、キュー内のできるかぎり多くのドキュメントを処理します。

  • maxtimeNULLの場合は、CTX_DDL.MAXTIME_UNLIMITEDの場合と同じです。

  • 時間制限は、概算です。実際にかかる時間が指定した時間より短いかまたは長い場合があります。

  • 非推奨となっているALTER INDEX... syncコマンドには、変更はありません。

  • sync_indexが索引名なしに起動された場合、maxtimeパラメータは無視されます。

  • maxtimeパラメータは、自動同期化(sync on commitsync everyなど)には反映されません。

SYNC_INDEXのロック・パラメータ

sync_indexのロック・パラメータにより、索引に対してすでに他の同期化が実行中の場合に同期化がどのような処理をするかを構成できます。

  • sync_indexが索引名なしに起動された場合、ロック・パラメータは無視されます。

  • ロック・パラメータは、自動同期化(sync on commitまたはsync everyなど)には反映されません。

  • ロック・モードがLOCK_WAITの場合、ロックが取得できない場合には永久に待機され、maxtimeの設定は無視されます。

使用できるオプションは次のとおりです。


オプション 説明

CTX_DDL.LOCK_WAIT

別の同期化が実行されている場合、実行中の同期化が完了するまで待機してから新規の同期化を開始します。

CTX_DDL.LOCK_NOWAIT

別の同期化が実行されている場合、すぐにエラーなしで戻ります。

CTX_DDL.LOCK_NOWAIT_ERROR

別の同期化が実行されている場合、すぐにエラーが発生します(DRG-51313: DMLまたは最適化ロックの待機中にタイムアウトになりました)。