Re: Question on large objects

  • From: Mladen Gogala <gogala.mladen@xxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Wed, 27 Sep 2023 21:16:04 -0400

On 9/27/23 14:41, Pap wrote:

 I wasn't aware of this, so curious. So you mean to say the undo records for lob's are written to the same lob segment during any dml to the lob column and it's not written to the common undo tablespace? And that is causing lot of space consumption because they are not overridden/expired like normal undo?

Please look at the PCTVERSION option in the SQL Reference manual. This option is not valid for SECUREFILE storage, but the explanation of that option tells you all that you need to know. Yes, old versions of the data are maintained in the LOB itself, probably to avoid undo segment congestion. Here is the reference note for "CREATE TABLE" statement:

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/CREATE-TABLE.html#GUID-F9CE0CC3-13AE-4744-A43C-EAC7A71AAAB6

PCTVERSION integer

Specify the maximum percentage of overall LOB storage space used for maintaining old versions of the LOB. If the database is running in manual undo mode, then the default value is 10, meaning that older versions of the LOB data are not overwritten until they consume 10% of the overall LOB storage space.

You can specify the |PCTVERSION| parameter whether the database is running in manual or automatic undo mode. |PCTVERSION| is the default in manual undo mode. |RETENTION| is the default in automatic undo mode. You cannot specify both |PCTVERSION| and |RETENTION|.


--
Mladen Gogala
Database Consultant
Tel: (347) 321-1217
https://dbwhisperer.wordpress.com

Other related posts: