none
sql server2000升级到2005的疑问 RRS feed

  • 问题

  • 我现在想将我的sql server2000升级到2005版本,在网上也查了一些相关资料,我使用的是直接安装升级的方法,测试了一下也升级成功。现在还有几个疑问。

    1.sql server2000的数据库是80版本,2005的是90版本,我升级完成后,其数据库结构之类的都不会有任何改变,是吗?其默认兼容级别是80,这样使用的话会不会对现有业务有什么影响?

    2.如果我想使用2005中的一些新功能,是不是必须将兼容性80更改为90才可以?如果改为90后有什么影响?我看了关于兼容级别80和90之间的行为差异的文章,但是这么多区别,都去检查并修改我现有的系统好像有些不现实是吧。但这个问题该如何解决呢?

    3.不论是直接安装升级,还是备份还原,或是附加等方法,是不是都不会改变原有的数据库结构,其数据库都不会变成真正的90版本?

    2010年9月7日 2:25

答案

全部回复

  • 1.数据库结构(我想你指表结构吧,这个不会变化),兼容级别是指某些特性,或者对一些关键字等的支持。不是说这个数据库可以又拿回到2000上去。

    2.对,需要升级到90。升级过程是自动的,基本不需要你干预。升级前做好备份即可。

    3.不会改变结构。是否变为90版本要看你是否设置90的兼容级别。


    family as water
    2010年9月7日 2:46
  • There's upgrade analyzer to tell you if any code in sql2k db will fail in sql2k5.
    2010年9月7日 2:57
  • 2楼,先谢谢了。还有几个疑问。

    1..如果兼容性我依旧使用80的话,对现有业务可能也会有什么影响吧,比如查询变慢之类的问题,2005和2000对查询的优化方式不太一样,需要对查询进行相应优化

    2.如果升级到90的话,由于90有一些新特性或关键字和80不同,会对我现有业务有些影响,对于此类影响,我如何才能避免?

     

    2010年9月7日 3:06
  • SQL2008增加了 “SQLServer:Deprecated Features " 监视对象,可以方便的找出目前系统中将来不被支持的功能,SQL2000和05好像没的。
    2010年9月7日 3:52
    版主
  • SQL2008增加了 “SQLServer:Deprecated Features " 监视对象,可以方便的找出目前系统中将来不被支持的功能,SQL2000和05好像没的。

    2005/08 的 profile 里面有 Deprecated 事件
    2010年9月7日 4:36
  • 80 兼容级别也可以使用一些新语句的, 例如 ROW_NUMBER(),  有些确实不能用.

    另外, 在 80 兼容级别下, 使用新增的一些语句可能会产生性能问题, 反正我是遇到过使用 row_numbwr 出现过慢的情况, 改 90 就好了.

    2010年9月7日 4:37
  • 建议你用 profile trace 一段时间  Deprecated 事件, 改掉里面提到的问题, 然后将兼容级别提升到 90
    2010年9月7日 4:39
  • 三楼所说的 upgrade analyzer 是 升级顾问 吗?

    还有在我升级完毕后,默认使用兼容级别80,然后还有什么需要改动的地方吗?比如说重新建立索引,更新统计等。

    2010年9月7日 5:15
  • Yes, should rebuild all indices after upgrade because sql2k5's optimizer works different from sql2k's.
    2010年9月7日 13:37
  • 能比较详细的说明一下升级到2005后为什么需要重新建立索引或者更新统计吗?
    2010年9月8日 6:32
  • Because sql2k5's optimizer works different from sql2k's, may generates wrong plan with old statistics..
    2010年9月8日 14:41