我们正在研究用新硬件和更新版本替换 Windows2003(32 位)上现有的 SQL2000 服务器。
我们正在研究一个至少需要 SQL2005,但也可以在 SQL2008 上运行的应用程序。我们的其他数据库也应该在其中一个上运行。
有没有人对这两个版本有过好的或坏的经历?
我们可能获得的硬件将支持 64 位,因此运行 SQL2008 64 位也是一种选择。
谢谢
我们正在研究用新硬件和更新版本替换 Windows2003(32 位)上现有的 SQL2000 服务器。
我们正在研究一个至少需要 SQL2005,但也可以在 SQL2008 上运行的应用程序。我们的其他数据库也应该在其中一个上运行。
有没有人对这两个版本有过好的或坏的经历?
我们可能获得的硬件将支持 64 位,因此运行 SQL2008 64 位也是一种选择。
谢谢
他们都是坚如磐石的。如果您有选择,请直接使用 SQL Server 2008 - 每个版本都有改进,即使您是喜欢等到服务包发布后再安装应用程序的人之一,SQL Server 2008 SP1 已经推出一个多月了。
这是 SQL Server 2008 中新功能的目录。每个版本都固有(但更难发现)是对存储引擎的改进,使 SQL Server 能够以更优化和更可靠的方式执行。
将数据库从 SQL2000 转移到 2005 或 2008应该没有问题,但是在实际环境中执行此操作之前,您需要对应用程序进行适当的测试(以防万一)。
我还没有 SQL2008 的经验,但是我们已经从 2000 年到 2005 年移动了许多数据库,只有一个小问题是旧应用程序中的一些代码。该问题是由于该项目中如何定义/调用某些视图。如果视图定义了类似“SELECT [somefield]=NULL, [and], [the], [rest] FROM [sometable]”的字段,那么应用程序运行“SELECT * FROM [theview] WHERE [somefield]='value' " 在 SQL2005 中有时(但不是在所有情况下)会导致强制转换 varchar-to-int 错误,而在 SQL2000 中从未出现过。简单的解决方案是将视图更改为 [somefield]=CAST(NULL AS NVARCHAR)。您可能不会遇到这个特定问题,而且我们没有其他问题,
我们已经将数据库从 32 位 SQL2005 迁移到 64 位 SQL2005 服务器,完全没有任何问题,我希望从 64 回到 32 也能正常工作。
请注意,一旦迁移到 SQL2005,将数据库迁移回 SQL2000 是相当痛苦的,因此我的主要观点是确保在迁移自己的应用程序之前彻底测试。还要确保您从所涉及的任何外部供应商那里获得明确的书面文字,说明他们的数据库/代码已经针对您选择的 SQL Server 版本进行了测试。
编辑:另一个相关点:我们以这种方式移动的应用程序不使用额外的服务,如全文索引、报告服务等 - 只是主要的 SQL 数据库服务 - 所以我无法评论应用程序是否使用此类额外功能的迁移是否顺利。
与您的应用程序供应商交谈。如果他们不能告诉你,我会在 SQL Server 2008 上进行试点测试,看看它是否有效。很有可能它会。(并且对你的供应商说一些讨厌的话,因为他们不知道他们的应用程序可以在什么平台上运行。)
SQL Server 2008 还支持一些数据库用户可能会喜欢的较新的 SQL 功能。如果它只是生产,也许不是,但如果你让开发人员使用查询工具进行连接,他们可能会喜欢这些附加功能。
他们可能会认为你像系统管理员一样摇摆不定,给你饼干或拥抱,或者第三台显示器或同样棒的东西。
至少,如果你是我的系统管理员,我会的。
您应该运行 sql 2008 64 位。如果应用程序支持 2008,您应该使用最新版本。请注意,您不能购买 2005,您要么购买 2008 并降级,要么购买 2008 并使用它。
我相信 2k8 相对于 2k5 的最大优势是数据压缩。您拥有的页面压缩比意味着(少得多)I/O、要管理的更小的数据库、更小的备份等等等等。
我会说,使用 SQL Server 2008 但要注意 64 位版本。我使用64位版本的SQL server 2008已经半年了,我认为它比SQL 2005有一些很大的改进,但你应该知道Excel/Access没有64位的Jet驱动程序。如果您需要与 Excel 进行一些集成,那么您将被 32 位模式下的 SSIS 卡住。(您仍然可以使用 64 位 SQL 2008,但不能对 Excel/Access 进行 OPENQUERY。
如果您还需要访问 Sybase,那么您必须打开钱包并花很多钱购买 OpenLinc 的 64 位驱动程序。请记住,您需要 OLEDB 和 ODBC 驱动程序,它仅限于 x 个并发连接和 y 个 CPU 内核。假设您(例如在我的情况下)具有 4 个四核处理器的服务器,并且不需要超过 5 个连接,这就像 20 000 美元或类似的东西。然后您需要一个带有 OpenLinc 的测试服务器!
/哈坎·温瑟
我喜欢 SQL 2008 中的一个特性就像有人说的 Datacompression,但我最喜欢的特性是过滤索引。
使用此功能,您可以在一小部分数据上构建覆盖索引以进行专门的查询。这将大大提高将使用过滤索引的查询的性能。
假设你有一张这样的桌子
当您使用以下查询时,引擎不必执行索引查找和聚集索引查找:
SQL 将仅通过索引查找来解决查询,因为查询所需的所有数据都存在于索引中。而且,索引只包含 Status=10 的记录,这会影响 INSERT/UPDATE/DELETE 的性能。
/哈坎·温瑟
无论您决定什么都不要购买 SQL Server 2005 许可证,因为您可以购买 SQL Server 2008 许可证并降级以运行 SQL Server 2005。这样,如果您决定运行 2008,您已经拥有许可证。我强烈建议运行 SQL Server 2008
总体而言,2008 年是一款很棒的产品,但是从 2000 年到 2005 年有一些停止使用的功能,并且从 2005 年到 2008 年也停止使用了功能(由于代表,我只允许使用 1 个链接,但请搜索“SQL Server 2008 中停止使用的数据库引擎功能”在联机丛书中)。您应该注意那些,因为它们可能是您现有应用程序/数据库的陷阱。处理日期时间的方式也存在一些精度问题,您可能会遇到(2008 年具有更高的精度,如果某些查询在几分之一秒内假设为 0.000,则可能会导致某些查询停止工作)。