我们的一位客户正在升级他们的服务器,因为旧设备已经无法处理数据库的负载了。他们过去6年一直在使用sql 2000,数据库已经增长到存储几个GB的数据。
升级到2005或2008是否值得?与2000相比,新版本的主要好处是什么?
我们的一位客户正在升级他们的服务器,因为旧设备已经无法处理数据库的负载了。他们过去6年一直在使用sql 2000,数据库已经增长到存储几个GB的数据。
升级到2005或2008是否值得?与2000相比,新版本的主要好处是什么?
根据所使用的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,则可能值得升级以获得增加的内存使用带来的好处...(更多缓存的表数据、索引、计划等)
MS SQL 2005和2008有许多被吹捧的技术,其中之一是将CLR代码嵌入存储过程的能力。不要这样做!
另一个“功能”是将数据库公开为Web服务的能力,同样;不要这样做!
第三个功能是从您的数据库使用“通知”并进入应用程序层,同样;不要这样做...!
您的数据库是一个桶,它应该“存储数据”,没有别的了。我确信Microsoft在2005年和2008年加入了许多功能,因为他们想要复杂化O/RM库的使用,这些库可以抽象出实际的数据库供应商,以便人们可以随意更改数据库。然后通过添加许多“愚蠢的功能”,这些功能违反了我们自70年代以来学到的关于数据库的所有最佳实践,他们成功地创建了一种新的锁定方式,通过使人们使用他们真正不应该使用的东西来消除供应商锁定...
除此之外,在2005年和2008年可能会有许多很酷的功能(比如这里提到的支持!)以及优化、漏洞修复等等。但是要小心,不要开始使用会使您的应用程序崩溃并使其无法使用最佳实践并锁定您的东西... :(
有一些新功能是很有用的,比如服务代理,但在性能方面,从2000年升级到2005年并不会带来巨大的改进。你最好做的是a)调整你的数据库和b)投资于新硬件。
用户和模式的分离是另一个好处。在 SQL 2005 中,如果您想要按逻辑/功能区域或类似方式而不是按用户在数据库中进行模式分离,您可以创建模式,例如“hr”、“销售”、“会计”、“生产”,然后在相应的模式下创建用户表。
在 SQL 2000 中,模式名称与表所有者/创建者相同。
我认为微软已经不再支持SQL Server 2000了。如果我错了,那也很快会停止支持。
在线索引重建是一个很好的功能。不过我认为这可能只是企业版才有的选项。