SQL Server迁移数据库性能哪个更好

标签 sql sql-server performance sql-server-2008 migration

一些背景:

一位客户向一位经过认证的 SQL Server 顾问询问他对从 sql server 2005 迁移到 sql server 2008 的看法。

他最重要的建议之一是不要使用备份/恢复,而是使用迁移向导将所有数据复制到新数据库中。

他表示,这将确保数据库的内部结构采用 SQL 2008 格式,并最终带来更好的性能。

客户对此表示怀疑,因为他们在白皮书或其他方式中找不到任何文字来证实顾问的声明。

所以他们向我提出了这个问题:

给定一个 SQL 数据库,该数据库最初在 SQL Server 2000 上启动,并已使用备份/还原迁移到较新版本的 SQL Server。 (最后在 SQL Server 2005 上)

使用迁移向导迁移到 SQL Server 2008,并实际上将所有原始数据复制到新数据库中,会带来更好的性能特征。那么他们是否会再次使用备份/恢复方法?

最佳答案

我会重复我在 Twitter 上发布的内容,“你的顾问是个白痴”。

备份和恢复将变得更加容易,并且需要更短的停机时间。它还将确保数据一致并且不会遗漏任何对象。

只要您进行索引维护(重建或重组/碎片整理索引),那么发生的任何页面拆分都会得到修复,并且不会出现性能问题。

当数据库从一个版本移至另一版本时,物理数据库文件将更新为新版本。当您恢复数据库时,您会注意到兼容性级别设置为旧版本的数字。这与数据库文件的物理结构无关。您可以随时将兼容性级别更改为更低或更高版本。如果您使用 T-SQL 恢复数据库,您可以看到这一点,因为在数据库恢复后您将看到所执行的具体升级步骤。

响应 qwerty13579 的评论,重建索引时,索引会写入新的物理数据库页面,因此不需要在 SQL Server 数据库中导出和导入数据。

根据记录,迁移向导是将数据从一个数据库移动到另一个数据库的最糟糕的选择。

关于SQL Server迁移数据库性能哪个更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713856/

相关文章:

performance - 对于小矩阵,纯 Haskell 比 HMatrix 快 10 到 100 倍?

performance - 如何测试应用程序的启动时间或性能

sql - 批量postgres多个JDBC select语句

sql - 透视带有文本且无聚合的表

mysql - 面临 Oracle 中 SELECT DML 更改的问题

sql-server - 基于地域,获取顶级客户及其总销售额的百分比

sql - 将输出参数设置为 sql 存储过程中 count() 的值

sql - 如何从表 A 中引用表 B 行两次?

sql - SQL 中与 LIKE 条件匹配的空字符串变量

c# - 如何简化这一长串 if 语句?