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