从 StackOverflow 和其他地方的问题中,我注意到仍然有人在使用 SQL Server 2000。说实话,对我最大的影响是我必须记住我们过去是如何在没有 Common Table Expressions 的情况下做事的。
不过,我想知道是否有实际原因(除了“它没有损坏”)仍然使用 SQL Server 2000。例如,我知道有些人必须使用 .NET 1.1,因为他们必须支持Windows 2000 系统。是否有任何类似的实际原因不将 SQL Server 2000 系统升级到 SQL Server 2008 或 2005?
商业头脑通常与你的不同。如果它不会产生更多收入,而只会产生费用(迁移、再培训等),为什么要使用更新的东西呢?
我能想到的最佳理由是“它没有损坏”的一种变体,如下所示:您有一个使用 SQL 2000 的业务应用程序,但使用 SQL 2005 会产生错误。这可能不是您组织的正确业务优先级此时打开该应用程序的引擎盖(没有损坏)并使其与更新的数据库一起使用。
传统支持
SQL Server 2005 与 SQL Server 2000 并不完全向后兼容。Analysis Services 存在严重的不兼容性。迁移到 SQL Server 2005 的回归测试和移植成本不为零。许多组织没有搬家的要求,所以他们只有在必须搬家时才会搬家。
大多数 DBMS 供应商(包括 MS)将支持一个 DBMS 版本 10 年左右 - 这比大多数其他类型的软件更长。如果您将他们的手掌与银(足够数量)交叉,他们还将签订特定合同,以延长对特定版本的支持。
坚持使用旧版本的其他原因实际上是由特定情况驱动的,例如避免已知的拙劣版本(例如 MySQL 5.1 或 pre-SP3 SQL2000)或认证或兼容性问题。
维护 SQL Server 2000 生产数据库
对于一个运行良好且处于其生命周期的成熟阶段而没有进行大量重大更改的操作系统,在 DBMS 脱离主流支持之前可能没有令人信服的理由进行升级。但是,您应该为这种可能性计划一个有序的升级路径。Oracle 以维护古老版本的生产系统而闻名。
SQL Server 2000 已接近其生命周期的终点,因此您不希望对其进行新的开发工作。但是,应维护生产应用程序,并计划在需要时移出。如果您的应用程序是用 VB6 或经典 ASP 编写的,那么您可能需要重写 - 但这是一个不同的问题;-}。
柜台案例
如果我有一个新建项目,我通常会推荐最新版本的 DBMS 平台,因为它为您提供了最长的供应商支持窗口。没有人应该仍然将 SQL Server 2000 作为新项目的企业标准 - EOL 太接近了。对于一个新项目,这是迄今为止迁移到新版本的最有力论据。关于省钱的论点是站不住脚的;如果您现在开始使用 SQL2000,该应用程序将在几年内产生不必要的移植成本。
新建工作的关键点在于,在需要升级之前,过于保守的选择会缩短应用程序的使用寿命。人们通常会想要一个特定的理由不去使用当前版本的 DBMS 平台。
我们不升级是因为我们有依赖它的财务软件,而供应商只是在考虑支持这个新的“SQL 2005”,他们最近听到了疯狂的孩子们的博客。
坦率地说,有各种各样的东西要支持让我很伤心,但并不像公司中的每个人都会出现财务系统问题那样伤害我,然后让财务软件供应商指向我们并当我们寻求帮助并提到问题开始于我们在他们批准之前升级到 SQL 2005 时,我们笑了。
如果它们实际上没有损坏,那么对于不修复它们也有很多话要说。我确实想在某个时候将我所有的 SQL 服务器升级到 2008 年......我真的很想。但是我可以做的还有很多事情,实际上以我的经理和用户可以理解和量化的方式改善了业务的底线……嗯,这总是第一位的。
您在回复 Mastermind 的回答时提到了不喜欢使用 SQL 2000 的开发人员。我怀疑如果我决定“不喜欢”支持 SQL 2000,我的老板会对我使用的一种处理方法是:“感谢您在这里工作的时间,门在您的左边”。归根结底,不管我们喜不喜欢,我们都会得到报酬来让东西正常工作。
在我们的案例中,与其说是“为什么继续使用 2000”,不如说是“升级成本是多少?”。我们的大多数应用程序不使用任何需要任何 2005 特定功能的东西,因此没有令人信服的理由,并且可能直到 Microsoft 停止对其提供支持。
成本。
较新的软件仍然是额外的软件,需要额外的钱。
由于使用过时系统的许多不利方面,这可能是并且通常是错误的经济,但这是唯一有意义的真正原因。
SQL Server 2008(标准)的新许可证成本略低于 2,000 美元,用于 1 个具有 5 个 CAL 的服务器或 6,000 美元用于 1 个 CPU 许可证。我可以听到我的老老板说“它没有坏,但是升级那两台服务器要花多少钱?” (当时需要 CPU 许可证的 2 个双 CPU)。
使用 SQL2000 七年了,我 2005 年的第一次体验是在 VMWare ESX 环境中。性能很糟糕(ISP 提供了 VMWare 专业知识,当我们开始负载测试时,我们发现他们不仅在我们的服务器上遇到了重大问题,而且还影响了我们的体验),并且结合了所有被移动/重命名的东西(旧的企业经理太棒了更快) - 我们更乐意推迟升级。然后我们在等待 2008 的发布,所以我们现在才升级到 2008(或将一些数据迁移到 MySQL/PostgresSQL)。
直到去年某个时候,Microsoft 仍在为 2000 提供主流支持,因此直到最近我们才有了更令人信服的升级理由。
小公司也有资源问题——学习、计划、测试升级需要时间,并且会影响其他运营。如果您必须同时升级 SQL Server 上的其他一些应用程序,这也会变得非常昂贵。
有一段时间我们一直在考虑转向开源,虽然这有可能它也冻结了任何升级。
为什么不升级到 sql server 2008,那么您实际上可以降低成本,因为数据压缩,更容易维护和改进的性能(过滤索引)?最近我们升级了一个 sql server 2000 安装,节省了 75% 的磁盘空间,性能也有了显着提升。
另一个改进是由于 sql server 2005 中引入的新锁定机制而导致的并发性。
/哈坎·温瑟
大型组织是风险厌恶和无知的,这会导致一些非常愚蠢的决定。当我在 2003/2004 年左右做 Unix 的时候,我们被困在我 10 年级左右发布的 Solaris 2.5.1 环境中,因为它是“经过验证的”技术,而且升级起来“太昂贵”。
太贵通常是 PHB 所说的“我在一个 1000 万美元的项目中为 1000 美元的升级预算做傻事”。
对于 Microsoft 堆栈软件,人们通常不愿意升级,因为他们不想与公司内部的许可巨魔打交道,而是从 Dell/IBM/etc 购买了 OEM 许可,并且不想与升级涉及的官僚圈子。
我不买(双关语)“前期成本”的论点,但不幸的是,前期成本是很多 PHB 都痴迷的东西,所以让它保持不变是有效的。
对我来说,唯一令人信服的原因是使用它的应用程序。例如,如果您是 SharePoint 2003 公司,那么您就不可能在不进行 SharePoint 升级的情况下升级到 SQL 2005 或 2008,这不是一件小事。