AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 30499
Accepted
BillN
BillN
Asked: 2009-06-24 10:32:47 +0800 CST2009-06-24 10:32:47 +0800 CST 2009-06-24 10:32:47 +0800 CST

SQL2005 与 SQL2008

  • 772

我们正在研究用新硬件和更新版本替换 Windows2003(32 位)上现有的 SQL2000 服务器。

我们正在研究一个至少需要 SQL2005,但也可以在 SQL2008 上运行的应用程序。我们的其他数据库也应该在其中一个上运行。

有没有人对这两个版本有过好的或坏的经历?

我们可能获得的硬件将支持 64 位,因此运行 SQL2008 64 位也是一种选择。

谢谢

sql-server sql-server-2005 sql-server-2008 64-bit
  • 10 10 个回答
  • 623 Views

10 个回答

  • Voted
  1. Best Answer
    Aaron Alton
    2009-06-24T10:39:21+08:002009-06-24T10:39:21+08:00

    他们都是坚如磐石的。如果您有选择,请直接使用 SQL Server 2008 - 每个版本都有改进,即使您是喜欢等到服务包发布后再安装应用程序的人之一,SQL Server 2008 SP1 已经推出一个多月了。

    这是 SQL Server 2008 中新功能的目录。每个版本都固有(但更难发现)是对存储引擎的改进,使 SQL Server 能够以更优化和更可靠的方式执行。

    • 7
  2. David Spillett
    2009-06-24T10:52:14+08:002009-06-24T10:52:14+08:00

    将数据库从 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 数据库服务 - 所以我无法评论应用程序是否使用此类额外功能的迁移是否顺利。

    • 6
  3. Evan Anderson
    2009-06-24T10:39:26+08:002009-06-24T10:39:26+08:00

    与您的应用程序供应商交谈。如果他们不能告诉你,我会在 SQL Server 2008 上进行试点测试,看看它是否有效。很有可能它会。(并且对你的供应商说一些讨厌的话,因为他们不知道他们的应用程序可以在什么平台上运行。)

    • 3
  4. J. Polfer
    2009-06-24T13:17:36+08:002009-06-24T13:17:36+08:00

    SQL Server 2008 还支持一些数据库用户可能会喜欢的较新的 SQL 功能。如果它只是生产,也许不是,但如果你让开发人员使用查询工具进行连接,他们可能会喜欢这些附加功能。

    他们可能会认为你像系统管理员一样摇摆不定,给你饼干或拥抱,或者第三台显示器或同样棒的东西。

    至少,如果你是我的系统管理员,我会的。

    • 2
  5. Jim B
    2009-06-24T11:20:25+08:002009-06-24T11:20:25+08:00

    您应该运行 sql 2008 64 位。如果应用程序支持 2008,您应该使用最新版本。请注意,您不能购买 2005,您要么购买 2008 并降级,要么购买 2008 并使用它。

    • 1
  6. Remus Rusanu
    2009-06-24T12:10:26+08:002009-06-24T12:10:26+08:00

    我相信 2k8 相对于 2k5 的最大优势是数据压缩。您拥有的页面压缩比意味着(少得多)I/O、要管理的更小的数据库、更小的备份等等等等。

    • 1
  7. Hakan Winther
    2009-06-25T02:14:56+08:002009-06-25T02:14:56+08:00

    我会说,使用 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 的测试服务器!

    /哈坎·温瑟

    • 1
  8. Hakan Winther
    2009-06-25T02:39:49+08:002009-06-25T02:39:49+08:00

    我喜欢 SQL 2008 中的一个特性就像有人说的 Datacompression,但我最喜欢的特性是过滤索引。

    使用此功能,您可以在一小部分数据上构建覆盖索引以进行专门的查询。这将大大提高将使用过滤索引的查询的性能。

    假设你有一张这样的桌子

    CREATE TABLE [DWH].[contract](
        [ID] int IDENTITY(100000000,1) NOT NULL,
        [reportDate] [datetime] NOT NULL,
        [contractnumber] [varchar](15) NOT NULL,
        [_instrument_ID] [int] NULL,
        [_package_ID] [int] NULL,
        [_portfolio_ID] [int] NULL,
        [_counterpart_ID] [int] NULL,
        [ValueX] [datetime] NULL,
        [ValueY] [datetime] NULL,
        [ValueZ] [varchar](20) NULL,
        [Status] int not null,
     CONSTRAINT [PK_contract] PRIMARY KEY CLUSTERED 
    (
        [ID] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    
    CREATE NONCLUSTERED INDEX [IX_contract_1] ON [DWH].[contract] 
    (
        [reportDate] ASC
    )
    INCLUDE ( [ValueX],[ValueY],[ValueZ]
    ) 
    WHERE  STATUS=10
    GO
    

    当您使用以下查询时,引擎不必执行索引查找和聚集索引查找:

    SELECT ValueX, ValueY, ValueZ FROM dwh.contract WHERE reportdate=GETDATE() AND Status=10
    

    SQL 将仅通过索引查找来解决查询,因为查询所需的所有数据都存在于索引中。而且,索引只包含 Status=10 的记录,这会影响 INSERT/UPDATE/DELETE 的性能。

    /哈坎·温瑟

    • 1
  9. DBAndrew
    2009-06-26T09:16:59+08:002009-06-26T09:16:59+08:00

    无论您决定什么都不要购买 SQL Server 2005 许可证,因为您可以购买 SQL Server 2008 许可证并降级以运行 SQL Server 2005。这样,如果您决定运行 2008,您已经拥有许可证。我强烈建议运行 SQL Server 2008

    • 1
  10. JP Alioto
    2009-06-26T09:39:09+08:002009-06-26T09:39:09+08:00

    总体而言,2008 年是一款很棒的产品,但是从 2000 年到 2005 年有一些停止使用的功能,并且从 2005 年到 2008 年也停止使用了功能(由于代表,我只允许使用 1 个链接,但请搜索“SQL Server 2008 中停止使用的数据库引擎功能”在联机丛书中)。您应该注意那些,因为它们可能是您现有应用程序/数据库的陷阱。处理日期时间的方式也存在一些精度问题,您可能会遇到(2008 年具有更高的精度,如果某些查询在几分之一秒内假设为 0.000,则可能会导致某些查询停止工作)。

    • 0

相关问题

  • 将管理员用户添加到 SQL Server 2008

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve