SQLServerITA

SQL Server e non solo

  • settembre: 2011
    L M M G V S D
    « Ago   Ott »
     1234
    567891011
    12131415161718
    19202122232425
    2627282930  
  • Blog Stats

    • 16,179 hits
  • Inserisci il tuo indirizzo e-mail per iscriverti a questo blog e ricevere notifiche di nuovi messaggi per e-mail.

    Segui assieme ad altri 6 follower

SQL Server 2008: ciclo aggiornamento statistiche [tsql]

Posted by belthazor78 su 18 settembre 2011


Piccolo script per creare altri script di aggiornamento statistiche su tutti i database di una istanza SQL. Per ora è uno script che di fatto non eseguirà alcuno script ma vi creerà gli script che poi potrete lanciare a mano. Utile  per capire se ci sono database che richiedono più tempo oppure per “splittare” l’operazione.

L’aggiornamento delle statistiche con sp_updatestats aggiorna solo le statistiche che ne hanno realmente bisogno e con un 20% di campione (non è come fare un aggiornamento FULLSCAN).

Ecco lo script:

DECLARE @SQL VARCHAR(1000)
DECLARE @DB sysname
DECLARE DBCYCLE CURSOR FAST_FORWARD FOR
SELECT [name]
FROM master..sysdatabases
WHERE [name] NOT IN (‘model’, ‘tempdb’)
ORDER BY [name]
OPEN DBCYCLE
FETCH NEXT FROM DBCYCLE INTO @DB
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @SQL = ‘PRINT ”Starting Upgrade Statistics on [‘+ @DB +’] at: ” + convert(char(20), getdate()) ‘
+ CHAR(13) + ‘USE [‘ + @DB +’]’ + CHAR(13) + ‘EXEC sp_updatestats’ + CHAR(13) +
‘PRINT ”Upgrade Statistics Finished on [‘+ @DB +’] at: ” + convert(char(20), getdate()) ‘ + CHAR(13)
PRINT @SQL
FETCH NEXT FROM DBCYCLE INTO @DB
END
CLOSE DBCYCLE
DEALLOCATE DBCYCLE

Anche in veste grafica:

Ed ecco l’esecuzione degli script generati in precedenza:

Molto comodo :D anche per farvi vedere come fare un ciclo su tutti i db ed eseguire un comando in particolare anzichè usare il comando Sp_MSForEachDB che è ottima come funzione ma che in realtà non è ancora documentata. Lo script è stato testato con SQL Server 2008 R2.

Una Risposta to “SQL Server 2008: ciclo aggiornamento statistiche [tsql]”

  1. notizie said

    reading SQL Server 2008: ciclo aggiornamento statistiche [tsql] SQLServerITA it really hit the spot, definitiveli
    racomanding it more. Sorry for my language🙂

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: