Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Statistique de la base de données de mise à jour SQL Server

Bonjour,

Les statistiques des objets de base de données doivent être à jour pour prendre la bonne décision de l'optimiseur SQL Server.

Si les statistiques des objets de la base de données ne sont pas à jour, l'optimiseur de base de données SQL Server prendra une mauvaise décision pour le plan d'exécution de la transaction.

Vous pouvez mettre à jour toutes les statistiques de la base de données avec le script suivant dans une instance SQL Server.

Vous devez exécuter la requête suivante dans un temps libre de la base de données, par exemple le soir ou le week-end.

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