Java Mailing List Archive

http://www.dba.5341.com/

Home » Home (12/2007) » oracle l »

Specifying "RETENTION" in 9iR2 LOB segment still uses PCTVERSION?

Jesse, Rich

2006-06-09

Replies:

Hey all,

According to a LOB perftuning paper from Oracle, specifying RETENTION is
preferred over PCTVERSION for creating LOBs when using automatic UNDO.
In 9.2.0.5.0, a dev here has created a table whose subset of columns is
this:

CREATE TABLE CALL_INFORMATION
(
S_CALL_ID         VARCHAR2(20)          NULL,
S_CUSTOMERNO       VARCHAR2(6)           NULL,
S_MACHINE_NO       VARCHAR2(20)          NULL,
S_CALL_DESCRIPTION   CLOB               NULL
)
TABLESPACE QT_SMALL
LOB (S_CALL_DESCRIPTION) STORE AS
   ( TABLESPACE QT_SMALL
    ENABLE    STORAGE IN ROW
    CHUNK     8192
    RETENTION
    CACHE
   )
/

Notice the "RETENTION" keyword in there? But when the DDL is grabbed:

SELECT dbms_metadata.get_ddl('TABLE', 'CALL_INFORMATION')
FROM dual;

The RETENTION is ignored and PCTVERSION is used:

...LOB ("S_CALL_DESCRIPTION") STORE AS (
TABLESPACE "QT_SMALL" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
CACHE...

Huh? DBA_LOBS shows both PCTVERSION of 10 and a RETENTION equal to the
current value of the UNDO_RETENTION parameter. I even tested:

ALTER TABLE CALL_INFORMATION modify lob(S_CALL_DESCRIPTION) (retention);

...to no avail. Is this a bug? I altered the running system's
UNDO_RETENTION and noticed that DBMS_LOB's PCTVERSION still remained at
10 while the RETENTION correctly adjusted to the new value.

I couldn't find anything about this on MetaLink and Google searches were
too generic to be of use.

Thoughts?

Rich
--
http://www.freelists.org/webpage/oracle-l


©2008 dba.5341.com - Jax Systems, LLC, U.S.A.