WITH 句
WITH 句は、基本となるベーステーブルでリフレッシュ中に取得するロックの種類を指定する場合に使用します。取得したロックの種類によって、テキストインデックスの移植方法とトランザクションの同時実行性への影響が決まります。WITH 句を指定しなかった場合、デフォルトは、接続に設定されている独立性レベルに関係なく、WITH
ISOLATION LEVEL READ UNCOMMITTED になります。
次の WITH 句オプションを指定できます。
ISOLATION LEVEL isolation-level
WITH ISOLATION LEVEL は、リフレッシュ操作を実行する場合の独立性レベルを変更する場合に使用します。
接続の元の独立性レベルは、文の実行終了時にリストアされます。
EXCLUSIVE MODE
WITH EXCLUSIVE MODE は、独立性レベルを変更しないが、基本となるテーブルにコミットされたデータと矛盾しないようにデータを確実に更新する場合に使用します。WITH EXCLUSIVE MODE を使用すると、基本となるベーステーブルに排他テーブルロックがかけられます。リフレッシュ操作が完了するまで、他のトランザクションによって、基本となるテーブルに対する問い合わせ、更新、その他のアクションは実行できなくなります。テーブルのロックを取得できない場合、更新操作は失敗し、エラーが返されます。
SHARE MODE
WITH SHARE MODE は、リフレッシュ操作の実行中に、基本となるテーブルを他のトランザクションで読み込めるようにするために使用します。この句を指定すると、リフレッシュ操作が実行される前に基本となるベーステーブルの共有テーブルロックが取得され、リフレッシュ操作が完了するまで保持されます。
FORCE 句
この句は、リフレッシュ方法を指定する場合に使用します。この句を指定しなかった場合、データベースサーバーは、変更されたテーブルの割合に基づいて、増分更新するか、または完全再構築するかどうかを決定します。
FORCE BUILD 句
テキストインデックスを再作成することでリフレッシュします。この句は、テキストインデックスを強制的に完全再構築する場合に使用します。
FORCE INCREMENTAL 句
基本となるテーブルでの変更内容にのみ基づいてテキストインデックスをリフレッシュします。基本となるテーブルに加えられた更新の量が多くない場合、増分リフレッシュは短期間で完了します。この句は、テキストインデックスを強制的に増分更新する場合に使用します。
増分リフレッシュでは、削除済みのエントリはテキストインデックスから削除されません。このため、テキストインデックスのサイズは、現在のデータと履歴データを含めた予想サイズよりも大きくなる場合があります。通常、この問題は、常に FORCE INCREMENTAL
句を使用して手動でリフレッシュしているテキストインデックスで発生します。自動的にリフレッシュされるテキストインデックスでは、履歴データは、テキストインデックスの合計サイズの 50 % に達すると、自動的に削除されます。