RS First Dynamics NAV Blog


...from NAV 3.60 to NAV 2013
Archivio Posts
Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Ricostruzione Indici SQL Server

Ricostruzione indici SQL Server

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.


Ci sono diversi modi per farlo, ad esempio è possibile ricrearlo completamente, oppure sfruttare il comando DBCC DBREINDEX che prende come parametro il nome di una tabella e ricrea automaticamente tutti gli indici a questa associati.

Lo script che segue apre un cursore che cicla su tutte le tabelle e rigenera gli indici.

	USE <miodatabase>
	
	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
	

miodatabase è il database su cui voglio fare la ricostruzione, aprendo il Query Analizer basta selezionarlo e rimuovere l'istruzione.

Lo script ha come parametro di fillfactor 90% che è il default di SQL Server, ma può essere modificato a proprio piacimento e schedulato periodicamente nei momenti in cui il database non viene utilizato in quanto, durante la rigenerazione degli indici, il comando DBCC DBREINDEX previene ogni accesso alla tabella.

Categoria: Sql Server ALL
venerdì, 12 mar 2010 Ore. 15.40

Messaggi collegati


Statistiche
  • Views Home Page: 451.625
  • Views Posts: 864.074
  • Views Gallerie: 0
  • n° Posts: 343
  • n° Commenti: 0
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003