Zrušení sloupců

8i | 9i | 10 g | 11 g | 12c | 13c | 18c | 19c | 21c | Různé | PL / SQL | SQL | RAC | WebLogic | Linux

Domů „Články“ 8i „Zde

Oracle 8i představil možnost přetažení sloupce z tabulky. Před tím bylo nutné zrušit celou tabulku a znovu jej sestavit. Nyní můžete sloupec označit jako nepoužívaný (logické mazání) nebo jej můžete smazat úplně (fyzické mazání).

  • Logické mazání
  • Fyzické mazání
  • Úvahy

Logické mazání

Na velkých tabulkách může být proces fyzického odstranění sloupce velmi časově i zdrojově náročný. Z tohoto důvodu se můžete rozhodnout logicky smazat it.

alter table table_name set unused (column_name);alter table table_name set unused (column_name1, column_name2);

Jakmile to uděláte, sloupce již nebudou uživateli viditelné. Pokud budete mít později čas sloupce fyzicky smazat, můžete lze provést pomocí následujícího postupu.

alter table table_name drop unused columns;

U velkých tabulek můžete snížit množství zpětně zaznamenaných protokolů pomocí možnosti CHECKPOINT, která vynutí kontrolní bod po zadaném počtu řádky byly zpracovány.

Zobrazení DBA_UNUSED_COL_TABS lze použít k zobrazení počtu nevyužitých sloupců v tabulce.

Fyzické odstranění

Chcete-li fyzicky vypustit sloupec, můžete použít jednu z následujících syntaxí podle toho, zda chcete zrušit jeden nebo více sloupců.

alter table table_name drop column column_name;alter table table_name drop (column_name1, column_name2);

Přetažení sloupec z tabulky způsobí, že všechny nepoužité sloupce v této tabulce budou zrušeny současně.

Úvahy

Vynechání sloupce nemusí mít za následek další využitelné volné místo v bloku. Pokud je sloupec malý, v každém bloku získáte jen malé kousky prostoru, které nemusí být znovu použitelné. Jediným způsobem, jak to bude uvolněno pro opětovné použití, je přestavět / přesunout stůl. Je efektivnější označit sloupec jako nepoužitelný a poté tabulku znovu sestavit. Ve výchozím nastavení není přesun operace online.

alter table table_name set unused (column_name);alter table table_name move;

V pozdějších verzích databáze lze operaci přesunu provést online.

alter table table_name set unused (column_name);alter table table_name move online;

Doufám, že to pomůže. S pozdravem Tim …

Zpět nahoru.

Leave a Reply

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *