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.