Zanima me koji je najbolji nacin da se obrisu goleme kolicine podataka iz tabele/tabela? Govorim ovdje o brisanju 30-ak milijuna u tablici koja sadrzi ~ 100 milijuna.
Problem je sto DELETE SQL statement nije od neke pomoci. Pustio sam brisanje preko 3 dana i nista pametno.
Pokusali smo brisati preko PL/SQL procedura (commit odjednom ili svakih 10000) - ukratko - beskonacno sporo.
Pokusao sam i ugurati hintove za koristenje index-a u DELETE DML (jer brisem po indeksiranom polju) i poboljsanje se vidi tek na nekim manjim tablicama.
Primjetio sam da me najvise muce constraint-i, medjutim kao zaposlenik u 'velikoj firmi' sa DBA smo na 'Vi' sto ce reci da imamo minimalne privilegije - postoji li nacin kako izvuci i disable-ati sve constrainte koji pokazuju na tablicu iz koje brisem?
Naime, onaj tko je razvijao model podataka, osmislio ga je tako da je vecina constraint-a postavljena na tablice koje ja sa svojim privilegijama ne mogu ni vidjeti. U tim doticnim tablicama garantirano nema 'child' zapisa, dakle Oracle dzabe provjerava child recorde i trosi vrijeme i resurse.
Mozda postoji koji hint koji ce reci Oracle-u da ignorira constraint-e?
Unaprijed hvala.
LP
Oracle OCA - PL/SQL developer