Rilascio di colonne

8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | Varie | PL / SQL | SQL | RAC | WebLogic | Linux

Home “Articoli” 8i “Qui

Oracle 8i ha introdotto la possibilità di eliminare una colonna da una tabella. Prima era necessario eliminare l’intera tabella e ricostruirlo. Ora puoi contrassegnare una colonna come non utilizzata (eliminazione logica) o eliminarla completamente (eliminazione fisica).

  • Elimina logica
  • Elimina fisica
  • Considerazioni

Eliminazione logica

Su tabelle di grandi dimensioni il processo di rimozione fisica di una colonna può richiedere molto tempo e risorse. Per questo motivo potresti decidere di eliminare in modo logico it.

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

Una volta fatto questo, le colonne non saranno più visibili all’utente. Se in un secondo momento hai tempo per eliminare fisicamente le colonne, questo può essere fatto utilizzando quanto segue.

alter table table_name drop unused columns;

Su tabelle di grandi dimensioni è possibile ridurre la quantità di log di annullamento accumulati utilizzando l’opzione CHECKPOINT che forza un punto di controllo dopo il numero specificato di righe sono state elaborate.

La visualizzazione DBA_UNUSED_COL_TABS può essere utilizzata per visualizzare il numero di colonne inutilizzate per tabella.

Eliminazione fisica

Per eliminare fisicamente una colonna è possibile utilizzare una delle seguenti sintassi, a seconda che si desideri eliminare una o più colonne.

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

Eliminare una colonna da una tabella causerà l’eliminazione simultanea di tutte le colonne inutilizzate in quella tabella.

Considerazioni

L’eliminazione di una colonna potrebbe non generare ulteriore spazio libero utilizzabile nel blocco. Se la colonna è piccola, otterrai solo piccoli blocchi di spazio in ogni blocco che potrebbero non essere riutilizzabili. L’unico modo in cui questo sarà liberato per il riutilizzo è ricostruire / spostare la tabella. È più efficiente contrassegnare la colonna come inutilizzabile, quindi ricostruire la tabella. Per impostazione predefinita, uno spostamento non è un’operazione online.

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

Nelle versioni successive del database l’operazione di spostamento può essere eseguita online.

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

Spero che questo aiuti. Saluti Tim …

Torna all’inizio.

Leave a Reply

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *