如何将SQL Server 2008 R2数据库转换为SQL Server 2012?

Con*_*ngo 10 sql-server-2008-r2 sql-server-2012

我安装了SQL Server 2012,并附加了最初由SQL Server 2008 R2生成的数据库.

一切看起来都很完美,有一个问题:合并从每秒1000次下降到每秒10次(减速100次).

我猜测它是因为我从SQL Server 2012访问SQL Server 2008 R2数据库.有没有办法将数据库转换为SQL Server 2012格式?或者是否有其他事情可以解释性能下降100倍?

Aar*_*and 18

请确保将数据库的兼容模式设置为110,并更新统计信息.

ALTER DATABASE MyDatabase SET COMPATIBILITY_LEVEL = 110;

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += CHAR(13) + CHAR(10) + 'UPDATE STATISTICS '
  + QUOTENAME(SCHEMA_NAME(schema_id)) 
  + '.' + QUOTENAME(name) + ' WITH FULLSCAN;'
  FROM sys.tables;

PRINT @sql;
--EXEC sp_executesql @sql;
Run Code Online (Sandbox Code Playgroud)

  • @TsahiAsher那个方法不是很安全,不仅仅是因为那个未记录的,不受支持的程序与sp_MSforeachdb共享代码([已知可以破解](http://www.mssqltips.com/sqlservertip/2201/making-a-more-可靠而灵活的spmsforeachdb /)),但也因为你可以在不同的模式中有多个具有相同名称的表.我的代码还允许您非常轻松地添加过滤条件,例如仅具有特定命名约定的表或特定模式. (5认同)