Mettre à jour la statistique
Submitted by st on
Dans la majorité de cas, SQL Server mets à jour la statistique de la manière automatique et régulière. Par contre, si vous venez de migrer vos bases de données depuis le vieux serveur sous 2000 ou 2005 sur 2008/2008 R2, la statistique n'est pas à jour et vos requêtes commencent tourner le temps long.
Dans ce cas il vous fait initier la mise à jour de la statistique pour toutes les bases de données applicatives. Voici le script qui vous aide.
/* This script impose on statistic updates for all application databases */ USE master GO DECLARE @db sysname, @sql nvarchar(max) DECLARE cur_db INSENSITIVE CURSOR FOR SELECT name FROM sys.databases WHERE owner_sid > 0x01 OPEN cur_db WHILE 1 = 1 BEGIN FETCH NEXT FROM cur_db INTO @db IF @@FETCH_STATUS <> 0 BREAK SET @sql = 'USE ' + @db + ';' + 'EXEC sp_MSforeachtable ''UPDATE STATISTICS ?; EXEC sp_recompile ''''?''''''' PRINT @sql EXEC sp_executesql @sql END DEALLOCATE cur_db