8i | 9i | 10g | 11g | 12c 13c 18c 19c 21c Egyéb | PL / SQL | SQL | RAC | WebLogic | Linux
Kezdőlap “Cikkek” 8i “Itt
Az Oracle 8i bevezette az oszlop ledobásának lehetőségét egy táblából. Ezt megelőzően a teljes táblát el kellett dobni és újjáépítheti. Most egy oszlopot használatlannak jelölhet (logikai törlés), vagy teljesen törölheti (fizikai törlés).
- Logikai törlés
- Fizikai törlés
- Megfontolások
Logikai törlés
Nagy tábláknál az oszlopok fizikai eltávolítása nagyon időigényes és erőforrásigényes lehet. Ezért dönthet logikus törlés mellett azt.
alter table table_name set unused (column_name);alter table table_name set unused (column_name1, column_name2);
Ha ez megtörtént, az oszlopok már nem lesznek láthatók a felhasználó számára. Ha egy későbbi időpontban van ideje fizikailag törölni az oszlopokat, ez a következők használatával végezhető el.
alter table table_name drop unused columns;
Nagy táblákon csökkentheti a felhalmozott visszavonási naplók mennyiségét a CHECKPOINT opció használatával, amely a megadott számú ellenőrzést követi sorok feldolgozása megtörtént.
A DBA_UNUSED_COL_TABS
nézet használható a táblánként fel nem használt oszlopok számának megtekintésére.
Fizikai törlés
Oszlop fizikai eldobásához a következő szintaxisok egyikét használhatja, attól függően, hogy egyetlen vagy több oszlopot szeretne-e dobni.
alter table table_name drop column column_name;alter table table_name drop (column_name1, column_name2);
A táblázat oszlopának hatására a táblázat összes fel nem használt oszlopa egyszerre kerül eldobásra.
Megfontolások
Az oszlop eldobása nem eredményezhet további használható szabad helyet a blokkban. Ha az oszlop kicsi, akkor minden blokkban csak kis darabokat kap, amelyek nem feltétlenül használhatók fel újra. Az egyetlen módja annak, hogy újrafelhasználás céljából felszabaduljon, az asztal újjáépítése / mozgatása. Hatékonyabb az oszlopot használhatatlannak jelölni, majd felépíteni a táblázatot. Alapértelmezés szerint az áthelyezés nem online művelet.
alter table table_name set unused (column_name);alter table table_name move;
A későbbi adatbázis-verziókban az áthelyezési művelet online is elvégezhető.
alter table table_name set unused (column_name);alter table table_name move online;
Remélem, ez segít. Üdvözlettel Tim …
Vissza a tetejére.