REBUILD e REORGANIZE

La riorganizzazione di un indice è da preferire quando l'indice non è molto frammentato. Aiuta a liberare spazio su disco compattando le pagine dell'indice ed eliminando quelle vuote in seguito alla compattazione. Viene eseguito in automatico IN LINEA e si occupa di deframmentare i livelli foglia sia degli indici CLUSTERED che degli indici NONCLUSTERED .

La ricostruzione di un indice cancella e ricrea l'indice ed in questo modo la frammentazione viene eliminata. E' da preferire quando l'indice è molto frammentato. La clausola WITH (ONLINE=ON) consente di effettuare da ricostruzione IN LINEA

NOTA : la clausola ONLINE è presente solo su Sql Server Enterprise, Evalution, Developer.

Documentazione su technet :

https://technet.microsoft.com/en-us/library/ms189858.aspx

Come fare per :

Riorganizzare -  

USE AdventureWorks2008_new;
GO
ALTER INDEX ALL ON Production.Product REORGANIZE

Ricostruire -

USE AdventureWorks2008_new;
GO
ALTER INDEX ALL ON Production.Product REBUILD WITH (ONLINE=ON)

 

Quando scegliere la riorganizzazione o la ricostruzione (valori indicativi) :

 

 

Valore di avg_fragmentation_in_percent Istruzione correttiva

> 5% e < = 30%

ALTER INDEX REORGANIZE

> 30%

ALTER INDEX REBUILD WITH (ONLINE = ON)*