Query dinamica per creazione comando REBUILD INDEX

Pubblicato da Patrizia Gardis il

Con l’articolo Query dinamica per creazione comando REBUILD INDEX, forniamo 2 query dinamiche con cui avremo la possibilità di creare il comando di rebuild degli indici e degli indici partizionati che hanno lo stato UNUSABLE.

La REBUILD è la ricostruzione dell’indice.
Questa operazione viene effettuata, quando viene modificata la DDL della tabella, per recuperare spazio inutilizzato, ma sopratutto per eliminare la frammentazione all’interno dell’indice.

Quindi è di vitale importanza tenere sotto controllo lo stato della frammentazione delle tabelle e degli indici di uno schema.

Poichè se troppo frammentati un degrado delle performance sarebbe inevitabile.

In fase di REBUILD, la tabella non deve essere acceduta poichè la rebuild fallirebbe con l’errore ORA-00054: resource busy and acquire with NOWAIT specified.

Se invece viene eseguita la REBUILD con la clausola ONLINE, i dati restano disponibili agli utenti, questo perchè, con la REBUILD classica, viene impostato un EXCLUSIVE LOCK in modo da bloccare tutte le operazioni DML nell’oggetto impattato.
Con le ultime release Oracle, è stato ridotto il periodo di LOCK e questo permette ugualmente l’accesso ai DATI.

Di seguito gli statement

Query dinamica per creazione comando REBUILD INDEX

SET LINES 170
select 'alter index '||i.OWNER||'.'||i.INDEX_NAME||' REBUILD;'
from dba_indexes i, dba_segments s
where i.OWNER not in ('SYS','SYSTEM') 
and i.OWNER = s.OWNER
and i.INDEX_NAME = s.SEGMENT_NAME
and i.STATUS <>'VALID';

Costruzione statement di REBUILD INDEX PARTITION

SET LINES 170
select 'alter index '||i.index_OWNER||'.'||i.INDEX_NAME||' REBUILD PARTITION ' ||s.PARTITION_NAME|| ';'
from dba_ind_partitions i, dba_segments s
where i.INDEX_OWNER not in ('SYS','SYSTEM') 
and i.INDEX_OWNER = s.OWNER
and i.INDEX_NAME = s.SEGMENT_NAME
and i.partition_name = s.partition_name and i.STATUS <> 'VALID';

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin


0 commenti

Lascia un commento

Segnaposto per l'avatar