Ricostruire gli indici delle tabelle di un database MSSQL

Durante gli inserimenti e le modifiche in una tabella è possibile che gli indici vengano a deframmentarsi, facendo scadere le performance del database. E' necessario quindi, periodicamente, riorganizzare gli indici.

Per farlo è sufficiente eseguire questo script dalla console Query Analizer di MSSQL o da linea di comando:

USE [nome_database]

DECLARE @tabella varchar(255)

DECLARE cursore_tabella CURSOR FOR
SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'

OPEN cursore_tabella

FETCH NEXT FROM cursore_tabella INTO @tabella
WHILE @@FETCH_STATUS = 0
BEGIN
DBCC DBREINDEX(@tabella,' ',90)
FETCH NEXT FROM cursore_tabella INTO @tabella
END

CLOSE cursore_tabella

DEALLOCATE cursore_tabella

Se usato da Query Analizer la prima riga deve essere cancellata.
in questo modo vengono controllate tutte le tabelle del database e rigenerati gli indici.
Durante questa operazione, l'accesso alla tabella viene inibito, quindi è consigliabile usare lo script quando il database non è utlizzato.

Back to Top