Fråga : Ta bort ett stort nummer av rekord från Oracle

Jag behöver att ta bort ett stort nummer av rekord från Oracle 10g (nästan 50 miljoner). Det processaa tar mycket en lång tid på något sätt; när den är förlorad, några resonerar den Oracle DBEN saktar egentligen besegrar. Svarstiderna är egentligen egentligen fattiga efter den processaa raderingen. Förmiddag I en newbie till Oracle och SQL. Några förslag på hur man fortsätter? " klar "

Svar : Ta bort ett stort nummer av rekord från Oracle

det avslutar någonsin?

1) du why inte gör det grupperar in? något som är lik

borttagnings från bordlägger var updated_date <� date="" and="" rownum="">begår;

därefter igen vi kan göra det samma tinget, tills det tar bort allt. gruppera storleksanpassar är precis ett exempel som gör dig att förstå. du kan bestämma det korrekt grupperar storleksanpassar, genom att utföra det med 50K, eller 10K etc. och dig finner den att arbeten kvickt och bör vara boten.

2) finns det ett index för updated_datekolonnen i ditt bordlägger?

3) efter radering om du ska, ha endast lite räkningen av rekord däri att bordlägga därefter, varför att inte ta endast de rekord till någon annat bordlägga och därefter, avkorta detta bordlägger och sätter därefter de rekord in i original bordlägger tillbaka.

skapa bordlägger bak_table som valt * från mytable var <>>;
truncate bordlägga mytable;
sätt in in i mytable väljer * från bak_table;
begå;

Tack
Andra lösningar  
 
programming4us programming4us