none
oracle转sql server面临的第一个问题 RRS feed

  • 问题

  • 原有oracle库里大量使用了分区表(所有的统计表),大部分都是LIST+时间RANGE分区,现在转成SQL SERVER,SQL SERVER只有一种分区策略,更不支持组合分区,求助哈,各位有没有好的思路或办法了(从设计角度考虑都可以)!!
    2016年7月28日 4:00

全部回复

  • 根据分区规则在表上建个计算列,计算出单列的分区值,然后基于这个计算列分区就好了
    2016年7月28日 5:20
  • 谢谢大名鼎鼎的邹建好的建议,之前oracle的分区是 客户ID(取客户的组织机构代码)LIST+时间(按月或年)分区,如果要使用计算列,就必须把客户ID换成具体的序号(比如按客户接入系统先后顺序,取1....50),然后把时间换成整型,然后把这两个拼接起来,用作计算列分区。

    这样的话,所有的SQL都必须修改,之前where条件中都带了分区条件,即:组织机构ID+时间,现在就必须把传入的组织机构ID+时间按规则转换成整型,然后用这个计算列作为where条件了。

    这样还一个麻烦的事,就是在存储的时候,因为有计算列的存在,也会影响到insert、update的效率哈!


    2016年7月28日 6:34
  • 搞个函数比较方便

    想不想时已是想,不如不想都不想。

    2016年7月28日 10:29
    版主
  • 分表+分区呢
    2016年8月9日 1:25
  • 没好答案,机制有区别,要迁移,代码就必须调整

    或许,未来MS注重这个,提供兼容性支持也可能。。比如像序列


    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    2016年8月22日 1:30