sql >> Base de Datos >  >> RDS >> Sqlserver

Estadística de base de datos de actualización de SQL Server

Hola,

Las estadísticas de los objetos de la base de datos deben estar actualizadas para tomar la decisión correcta del optimizador de SQL Server.

Si las estadísticas de los objetos de la base de datos no están actualizadas, el optimizador de la base de datos de SQL Server tomará una decisión incorrecta para el plan de ejecución de la transacción.

Puede actualizar todas las estadísticas de la base de datos con el siguiente script en una instancia de SQL Server.

Debe ejecutar la siguiente consulta en un tiempo libre de la base de datos, por ejemplo, por la noche o los fines 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