Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Statistica del database di aggiornamento di SQL Server

Ciao,

Le statistiche degli oggetti del database devono essere aggiornate per prendere la decisione giusta sull'ottimizzatore di SQL Server.

Se le statistiche degli oggetti del database non sono aggiornate, l'ottimizzatore del database di SQL Server prenderà una decisione sbagliata per l'esecuzione del piano di transazione.

Puoi aggiornare tutte le statistiche del database con il seguente script in un'istanza di SQL Server.

Dovresti eseguire la seguente query nel tempo libero del database, ad esempio la sera o nei fine settimana.

DECLARE @SQL VARCHAR(1000)  
DECLARE @DB sysname  

DECLARE curDB CURSOR FORWARD_ONLY STATIC FOR  
   SELECT [name]  
   FROM master..sysdatabases 
   WHERE [name] NOT IN ('model', 'tempdb') 
   ORDER BY [name] 
     
OPEN curDB  
FETCH NEXT FROM curDB INTO @DB  
WHILE @@FETCH_STATUS = 0  
   BEGIN  
       SELECT @SQL = 'USE [' + @DB +']' + CHAR(13) + 'EXEC sp_updatestats' + CHAR(13)  
       PRINT @SQL  
       FETCH NEXT FROM curDB INTO @DB  
   END  
    
CLOSE curDB  
DEALLOCATE curDB