Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: need help tuning a very large delete
"Anurag Varma" <avdbi_at_hotmail.com> wrote in message news:<WN4ab.76$DV7.16_at_news02.roc.ny>...
> <Kenneth Koenraadt> wrote in message news:3f68c498.3658049_at_news.inet.tele.dk...
> > Adding to above (since I believe that above solution will be very slow): > Firstly, Try not deleting, if you are deleting so many rows. Instead do a: > > create table master_new > as > select m.* from master m, stage s > where m.pk = s.pk(+) > and s.delete_column = 'Y'(+) > and s.pk is null > / > > followed by (creating the appropriate indexes on the master_new .. using parallel option ... and big sort_area_size) > and then > rename master to master_old; > rename master_new to master; > ... recompile invalid objects // create triggers etc.... > > OR if you have to delete, see if this is faster: > > delete from master m > where m.pk in > (select m.pk from master > minus > select s.pk from stage where s.delete_column = 'Y') > / > > OR you could try a delete on a query: > > OR truncate table master and do an insert select.. > > :) Many ways to skin this cat. Test before implementing .. > > Anurag
performance of minus is highly dependent on sort area size right? Received on Thu Sep 18 2003 - 06:35:34 CDT