Ahoj,
Statistiky databázových objektů by měly být aktuální, aby mohl optimalizátor SQL Server učinit správné rozhodnutí.
Pokud statistiky databázových objektů nejsou aktuální, optimalizátor databáze SQL Server učiní nesprávné rozhodnutí o provedení plánu transakce.
Všechny statistiky databáze můžete aktualizovat pomocí následujícího skriptu v instanci SQL Server.
Následující dotaz byste měli provést ve volném čase databáze, například večer nebo víkendy.
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