In der Vergangenheit würde man den PCTVERSION-Speicherparameter für ihre LOB-Segmente verwenden, um einen Prozentsatz des Speicherplatzes für die Lesekonsistenz von LOB-Segmenten zu reservieren. In Oracle 11g können Sie jetzt den RETENTION-Parameter verwenden. Der RETENTION-Parameter verwendet den UNDO_RETENTION-Parameter, um zu bestimmen, wie lange LOB-Daten für Zwecke der Lesekonsistenz aufbewahrt werden. Beachten Sie jedoch, dass der Undo-Tablespace nicht verwendet wird! Der Tablespace des LOB-Segments wird für Lesekonsistenzzwecke verwendet.
Wenn Sie den Parameter UNDO_RETENTION ändern, wird der Aufbewahrungswert des LOB-Segments nicht geändert. Wenn Sie die RETENTION-Spalte der DBA_LOBS-Ansicht abfragen, werden Sie feststellen, dass der alte UNDO_RETENTION-Wert immer noch vorhanden ist, nachdem Sie den UNDO_RETENTION-Parameter geändert haben. Gehen Sie wie folgt vor, um den RETENTION-Wert des LOB-Segments so zu ändern, dass er mit dem neuen UNDO_RETENTION-Wert übereinstimmt:
ALTER TABLE my_table MODIFY LOB (lob_column) (PCTVERSION 20);
ALTER TABLE my_table MODIFY LOB (lob_column) (RETENTION);
Durch vorübergehendes Ändern des LOB zur Verwendung von PCTVERSION und dann zurück zu RETENTION wird der neue Wert von UNDO_RETENTION verwendet. Sie müssen dies für alle LOB-Segmente tun, die Sie ändern möchten.