SQL Server 2005/2008相对于SQL Server 2000有哪些主要优势?

3

我们的一位客户正在升级他们的服务器,因为旧设备已经无法处理数据库的负载了。他们过去6年一直在使用sql 2000,数据库已经增长到存储几个GB的数据。

升级到2005或2008是否值得?与2000相比,新版本的主要好处是什么?

9个回答

4
除了Galwegian提到的CLR集成外,对我来说主要的优点是: 另一个需要注意的区别是,与您可能已经使用的DTS包不同,Sql 2005使用Integration Services,虽然相似但完全不同。

公共表达式是最好的。对于存储过程,使用所有者身份执行也是规则。 - Vilx-
XML支持在当今是非常重要的 +1。 - annakata

4

根据所使用的SQL Server版本不同,SQL 2005的硬件限制比相应的SQL2k版本更宽松。

例如,SQL 2000标准版最多只能使用2Gb内存(实际上是1.7Gb),而SQL 2005标准版没有限制(允许使用操作系统最大内存)。

参见: http://msdn.microsoft.com/en-us/library/aa933149(SQL.80).aspx

...和...

http://www.microsoft.com/sqlserver/2005/en/us/compare-features.aspx

因此:如果你正在运行标准版 + SQL Server 2000实例当前使用约1.6Gb RAM + 服务器有3Gb或更多物理RAM,则可能值得升级以获得增加的内存使用带来的好处...(更多缓存的表数据、索引、计划等)


3
如果您计划从SqlServer 2000升级,我建议跳过2005直接升级到SqlServer 2008。它拥有所有2005的功能,还有一些额外的功能(例如将表变量作为参数传递给存储过程的选项、新的日期类型、空间数据处理等)。您可以参考这个帖子来获得功能全面的列表。 编辑 我看到问题已更新,现在包括了SqlServer 2008。

我会说:如果这是一个关键任务系统,在使用新版本的SQL Server之前,请等待(至少)SP1。这只是我的个人意见。 - KristoferA
好主意,我通常会这样做-让其他人先进行压力测试;)。我们目前正在使用2005,我不认为有必要升级到2008,但如果我现在从2000升级,我会选择2008。 - kristof

3

MS SQL 2005和2008有许多被吹捧的技术,其中之一是将CLR代码嵌入存储过程的能力。不要这样做

另一个“功能”是将数据库公开为Web服务的能力,同样;不要这样做

第三个功能是从您的数据库使用“通知”并进入应用程序层,同样;不要这样做...!

您的数据库是一个,它应该“存储数据”,没有别的了。我确信Microsoft在2005年和2008年加入了许多功能,因为他们想要复杂化O/RM库的使用,这些库可以抽象出实际的数据库供应商,以便人们可以随意更改数据库。然后通过添加许多“愚蠢的功能”,这些功能违反了我们自70年代以来学到的关于数据库的所有最佳实践,他们成功地创建了一种新的锁定方式,通过使人们使用他们真正不应该使用的东西来消除供应商锁定...

除此之外,在2005年和2008年可能会有许多很酷的功能(比如这里提到的支持!)以及优化、漏洞修复等等。但是要小心,不要开始使用会使您的应用程序崩溃并使其无法使用最佳实践并锁定您的东西... :(


拿出你的锡纸帽子吧!也许和其他大多数数据库供应商一样,他们添加有用的功能只是为了添加有用的功能,并非阴谋的一部分。“你的数据库只是一个存储数据的桶”是一种观点,还有其他观点。 - James Orr

2
主要的好处说实话就是CLR整合 - 它使您在编写数据库时具有更多的灵活性,让您可以选择将过程式的C#或VB.NET包含在您的存储过程中,而不是基于集合的T-SQL。

总的来说,我非常不同意那个观点。CLR集成很酷,但也容易被过度使用。如果你知道什么时候该用什么时候不该用,我会同意你的说法。 - Mladen Prajdic
@Mladen - 我完全同意 - 我见过CLR集成被滥用的次数比被正确使用的次数更多。在不正确的人手中,它就像是“够绞死自己的长度”。 - Galwegian
就像其他技术一样,新技术通常会被滥用,当然有些比其他的更容易被滥用,在这种情况下,CLR非常容易被滥用。但它仍然在SQL Server中有其合法的位置。 - terjetyl

1

有一些新功能是很有用的,比如服务代理,但在性能方面,从2000年升级到2005年并不会带来巨大的改进。你最好做的是a)调整你的数据库和b)投资于新硬件。


1

用户和模式的分离是另一个好处。在 SQL 2005 中,如果您想要按逻辑/功能区域或类似方式而不是按用户在数据库中进行模式分离,您可以创建模式,例如“hr”、“销售”、“会计”、“生产”,然后在相应的模式下创建用户表。

在 SQL 2000 中,模式名称与表所有者/创建者相同。


1

我认为微软已经不再支持SQL Server 2000了。如果我错了,那也很快会停止支持。


是的,你说得对。你可以获得“扩展支持”,但它已经没有主流支持了。 - Charles Graham

0

在线索引重建是一个很好的功能。不过我认为这可能只是企业版才有的选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接