A reader, October 24, 2019 - 9:08 pm UTC
Hi,
Thanks for your response, however from DBA perspective, I have setup UNDO_RETENTION to 600,000 seconds ( 7 days) and UNDO tablespace is setup as Retention GUARANTEE too.
Alter table was also executed for table with LOB
alter table XMLGEN.mytable modify lob(XML_packet) (retention);
So how come ORA-1555 would arise in this case ? If it had happened after 6/7 days then it would make sense.
October 29, 2019 - 11:17 am UTC
Setting a lob to "retention" is about establishing a consistency between the lobs and other objects in the database.
However, it does *not* mean that older versions of lobs will use the undo tablespace (and hence retention guarantee does not apply). Old versions will be kept in the lob segment tablespace.
Also, these parameters may be silently ignored if your blob is in a manual segment space management tablespace.
Thanks a lot
Sanjay Gupta, October 25, 2019 - 10:22 pm UTC
I am using your Pl/SQL code and can see that performance is much better.
Thanks a lot for your helo
October 29, 2019 - 11:13 am UTC
Parallel wont be your friend here because we are doing the rows in small batches anyway. DBMS_PARALLEL_EXECUTION *may* be an option down the track, but before doing that you want to be turning on a trace once it slows down so we can see where the delay is ocurring.
Sanjay Gupta, October 26, 2019 - 5:42 am UTC
Initially when I started, processing was much faster and done 4M in couple hrs but now processing is much slower. I see now processing about 100K per hrs. So not sure what's reason for slowness ?
still bad performace
Sanjay, October 28, 2019 - 10:15 pm UTC
Thanks McDonald,
I am not sure why initially few millions( about 4M) loaded pretty last but later on speed reduced to about 100K per hr. I have also included parallel clause for insert and select but I only see 1 session.
They is nothing shows up in v$session_longops as well. Wiat event I see "direct path read and P3 shows 1 cnt"
Anything else that I can do to speed it up ?
INSERT /*+ parallel (NEWTABLE,8) */
INTO NEWTABLE (TVPROGRAMCONTENT_ID,
XML_PACKET,
CDATE,
UDATE)
SELECT /*+ leading(nt) rowid(t) parallel (t,8) parallel ( nt,8) */
T.TVPROGRAMCONTENT_ID,
T.XML_PACKET,
T.CDATE,
T.UDATE
FROM OLDTABLE T, TABLE ( :B1) NT
WHERE T.ROWID = CHARTOROWID (COLUMN_VALUE)
Have you tried expdp/impdp
A reader, October 30, 2019 - 5:41 am UTC
We had to re-org multiple large tables 300+ GB each (at least) on a bi-weekly basis due to performance issues with LOB.
We ended up using data pump for that.. there is a perl script which will split up a table into multiple dumps (generates a par file for each) and you can export them in parallel.
Once done just import them in parallel (think it generates the imp par file as well). Just google for it.
Cheers.
November 05, 2019 - 4:13 am UTC
Nice input