Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Estatística do banco de dados de atualização do SQL Server


Oi,

As estatísticas dos objetos de banco de dados devem estar atualizadas para tomar a decisão certa do otimizador do SQL Server.







Se as estatísticas dos objetos de banco de dados não estiverem atualizadas, o otimizador de banco de dados do SQL Server tomará uma decisão errada para o plano de execução da transação.

Você pode atualizar todas as estatísticas do banco de dados com o seguinte script em uma instância do SQL Server.



Você deve executar a seguinte consulta em um tempo livre do banco de dados, por exemplo, à noite ou fins de semana.


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