以前は、LOBセグメントのPCTVERSIONストレージパラメータを使用して、LOBセグメントの読み取り整合性のためにストレージスペースのパーセンテージを予約していました。 Oracle 11gでは、RETENTIONパラメータを使用できるようになりました。 RETENTIONパラメーターは、UNDO_RETENTIONパラメーターを使用して、読み取りの一貫性を保つためにLOBデータを保持する期間を決定します。ただし、Undoテーブルスペースは使用しないことに注意してください。 LOBセグメントの表領域は、読み取りの一貫性を保つために使用されます。
UNDO_RETENTIONパラメータを変更しても、LOBセグメントの保持値は変更されません。 DBA_LOBSビューのRETENTION列を照会すると、UNDO_RETENTIONパラメーターを変更した後も、古いUNDO_RETENTION値が残っていることがわかります。 LOBセグメントのRETENTION値を新しいUNDO_RETENTION値と一致するように変更するには、次の手順を実行します。
ALTER TABLE my_table MODIFY LOB (lob_column) (PCTVERSION 20);
ALTER TABLE my_table MODIFY LOB (lob_column) (RETENTION);
PCTVERSIONを使用するようにLOBを一時的に変更してから、RETENTIONに戻すと、UNDO_RETENTIONの新しい値が使用されます。変更するすべてのLOBセグメントに対してこれを行う必要があります。