繁体   English   中英

SQL Server迁移数据库性能更好

[英]SQL Server migrating database performance what is better

一些背景:

客户已经向认证SQL Server顾问询问了他从sql server 2005迁移到sql server 2008的意见。

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

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

客户对此持怀疑态度,因为他们无法在白皮书中找到任何文字或以其他方式证实顾问的陈述。

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

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

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

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

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

只要您正在进行索引维护(重建或重新排序/碎片整理索引),就会修复已发生的任何页面拆分,并且不会出现性能问题。

当数据库从一个版本移动到另一个版本时,物理数据库文件将更新为新版本。 在还原数据库时,您会注意到兼容级别设置为旧版本的编号。 这与数据库文件的物理结构无关。 您可以随时将兼容级别更改为更低或更高版本。 如果使用T-SQL还原数据库,则可以看到这一点,因为在还原数据库之后,您将看到执行的特定升级步骤。

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

对于记录,迁移向导是将数据从数据库移动到数据库的最糟糕的选择。

我同意丹尼的观点。 备份/恢复是最简单的升级方式。 对于无停机升级,您可以将数据库镜像用于新服务器并故障转移到新版本

升级到新版本时,提高性能的一项重要任务是刷新所有统计信息

导出和导入数据几乎总能提高性能,而不是对已经生产了一段时间的数据库进行备份/恢复。 主要原因是随着时间的推移,数据的更改和新数据的插入将导致数据溢出到新页面和行链接。 想想旧的纸质地址簿 - 随着时间的推移,你会添加新的名字,排除旧名称,排列地址并在页面后面画一个箭头,在那里你写下他的新地址等。做一个导出/导入将数据写入新的数据库页面,以便更快地访问; 回到地址簿类比,您正在创建一个“新的”地址簿,以正确的排序顺序写入所有当前活动地址,您将能够更快地查找地址。

我对Oracle的了解比SQL Server内部更多,所以我不知道“SQL 2008格式”是什么意思(如果它在2008年可读,按照定义是2008格式,不是吗?),但是导出/导入是一种提高数据库性能的好方法。 我经常会为现有数据库执行此操作以解决性能问题。

[编辑:附加信息]:我对迁移向导的体验非常糟糕。 通过使用Management Studio中的Tasks - > Generate Scripts功能生成SQL脚本来迁移数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM