我们已经部署了SQL Server 2012 Enterprise,并且存在性能问题:
我们使用Management Studio进行测试:
在同一台计算机上:
即使使用功能更强大的计算机,2012年仍然比2005年慢。
有什么事吗 我们安装SQL Server 2012的方式和默认参数?我们还原备份的方式?我们可以做什么?
当我看到类似的变化时,我首先想到的是确保您已重新生成所有表的统计信息。网络上有许多脚本可以执行此操作,并且还讨论了是否使用内置的存储过程,是否执行全扫描等。这是我在比较之前要运行的一个快速而又肮脏的脚本。
CREATE PROCEDURE sp_UtilityUpdateStats AS SET NOCOUNT ON DECLARE @iCounter INT DECLARE @iCounterMax INT DECLARE @TableList TABLE ( iTable INT IDENTITY(1,1) PRIMARY KEY, szTableName VARCHAR(128) ) INSERT @TableList (szTableName) SELECT [name] FROM sysobjects WHERE [type] = 'u' ORDER BY [name] DESC SET @iCounterMax = (SELECT MAX(iTable) FROM @TableList) SET @iCounter = 0 DECLARE @szTableName VARCHAR(128) RAISERROR(N'------STARTING sp_UtilityUpdateStats------', 10, 1) WITH LOG WHILE @iCounter < @iCounterMax BEGIN SET @iCounter = @iCounter + 1 SELECT @szTableName = szTableName FROM @TableList WHERE iTable = @iCounter RAISERROR(N'UPDATE STATISTICS YourDB.dbo.%s', 10, 1, @szTableName) WITH LOG EXEC ('UPDATE STATISTICS YourDB.dbo.' + @szTableName) END RAISERROR(N'------FINISHING sp_UtilityUpdateStats------', 10, 1) WITH LOG SET NOCOUNT OFF GO