Hallo,
Datenbankobjektstatistiken sollten auf dem neuesten Stand sein, um die richtige Entscheidung des SQL Server-Optimierers zu treffen.
Wenn die Statistiken der Datenbankobjekte nicht auf dem neuesten Stand sind, trifft der SQL Server-Datenbankoptimierer eine falsche Entscheidung für den Ausführungsplan der Transaktion.
Sie können alle Datenbankstatistiken mit dem folgenden Skript in einer SQL Server-Instanz aktualisieren.
Sie sollten die folgende Abfrage in einer freien Zeit der Datenbank ausführen, zum Beispiel abends oder am Wochenende.
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