8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Diverse | PL / SQL | SQL | RAC | WebLogic | Linux
Acasă „Articole” 8i „Aici
Oracle 8i a introdus capacitatea de a renunța la o coloană dintr-un tabel. Înainte de aceasta a fost necesar să renunțați la întregul tabel și reconstruiți-o. Acum puteți marca o coloană ca neutilizată (ștergere logică) sau șterge-o complet (ștergere fizică).
- Ștergere logică
- Ștergere fizică
- Considerații
Ștergere logică
Pe tabelele mari procesul de eliminare fizică a unei coloane poate consuma mult timp și resurse. Din acest motiv, puteți decide să ștergeți logic it.
alter table table_name set unused (column_name);alter table table_name set unused (column_name1, column_name2);
Odată ce ați făcut acest lucru, coloanele nu vor mai fi vizibile pentru utilizator. Dacă la o dată ulterioară aveți timp să ștergeți fizic coloanele, acest lucru poate fi se va face folosind următoarele.
alter table table_name drop unused columns;
Pe tabelele mari puteți reduce cantitatea de jurnale de anulare acumulate utilizând opțiunea CHECKPOINT care forțează un punct de control după numărul specificat de rândurile au fost procesate.
Vizualizarea DBA_UNUSED_COL_TABS
poate fi utilizată pentru a vizualiza numărul de coloane neutilizate pe tabel.
Ștergere fizică
Pentru a renunța fizic la o coloană, puteți utiliza una dintre sintaxele următoare, în funcție de faptul dacă doriți să renunțați la o singură sau mai multe coloane.
alter table table_name drop column column_name;alter table table_name drop (column_name1, column_name2);
coloana dintr-un tabel va face ca toate coloanele neutilizate din acel tabel să fie abandonate în același timp.
Considerații
Eliminarea unei coloane nu poate duce la spațiu liber suplimentar utilizabil în bloc. Dacă coloana este mică, veți obține doar mici bucăți de spațiu în fiecare bloc care ar putea să nu fie refolosibile. Singurul mod în care va fi eliberat pentru reutilizare este de a reconstrui / muta masa. Este mai eficient să marcați coloana ca inutilizabilă, apoi să reconstruiți tabelul. În mod implicit, o mutare nu este o operațiune online.
alter table table_name set unused (column_name);alter table table_name move;
În versiunile ulterioare ale bazei de date operațiunea de mutare se poate face online.
alter table table_name set unused (column_name);alter table table_name move online;
Sper că acest lucru vă va ajuta. Cu respect Tim …
Înapoi la început.