こんにちは、
SQL Serverオプティマイザを正しく決定するには、データベースオブジェクトの統計が最新である必要があります。
データベースオブジェクトの統計が最新でない場合、SQLServerデータベースオプティマイザーはトランザクションの実行プランについて誤った決定を下します。
SQLServerインスタンスで次のスクリプトを使用してすべてのデータベース統計を更新できます。
夕方や週末など、データベースの空き時間に次のクエリを実行する必要があります。
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