Oszlopok eldobása

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.

Leave a Reply

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük