jeudi 20 décembre 2012

Utilisation de SET UNUSED en Oracle.

Une suppression de colonne dans une table existante et possédant de nombreuses lignes (données volumineuses) peut s'avérer une opération très longue. Dans ce cas, il est souhaitable de rendre la colonne inutilisable à l'aide de la clause SET UNUSED. Cette option de permet pas de libérer l'espace disque occupé par la colonne, mais elle permet de planifier l'opération de suppression de la colonne à un moment.

Exemple:
Rendre inutilisable la colonne TEL de la table EMPLOYEES. Dans un premier temps, la colonne est masquée comme inutilisée.

SQL> ALTER TABLE EMPLOYEES SET UNUSED (TEL);
Table altered

Pour connaître les tables qui contiennent des colonnes inutilisées, il faut interroger la vue du dictionnaire de données DBA_UNUSED_COL_TABS.

Connecter avec le compte sys as sysdba:
select * from dba_unused_col_tabs;












Dans un deuxième temps, il faut supprimer toutes les colonnes inutilisées de la table EMPLOYEES. Lors de cette opération, on demande à Oracle de réaliser un point de synchronisation (CHECKPOINT) toutes les 100 suppressions.

SQL> ALTER TABLE EMPLOYEES DROP UNUSED COLUMNS CHECKPOINT 100;
Table altered


1 commentaire: