我要进行视图分区,可是在主键是否为复合聚集索引上有点头疼。分区键为branchcode
复合键位branchcode,ID
如果为聚集索引,则ID必须必须放在前面,因为一个表里的branchcode都是一样的这样的列放在前面没什么用吧?
但是一般都select 或者where 这个列
所以它不能放在后面如果为非聚集索引,那么,就基本没有办法建立聚集索引,因为ID是uniqueidentifier
其他列都是无序列,创建聚集无论是分页,还是索引都不好。我该怎么选择呢?

解决方案 »

  1.   

    我要进行视图分区,可是在主键是否为复合聚集索引上有点头疼。分区键为branchcode
    复合键位branchcode,ID
    如果为聚集索引,则ID必须必须放在前面,因为一个表里的branchcode都是一样的这样的列放在前面没什么用吧?
    但是一般都select 或者where 这个列Branchcode
    所以它不能放在后面如果为非聚集索引,那么,就基本没有办法建立聚集索引,因为ID是uniqueidentifier
    其他列都是无序列,创建聚集无论是分页,还是索引都不好。我该怎么选择呢?
      

  2.   

    为什么要创建ID呢?如果按照ID为聚集索引,那么数据实际是按照ID进行排列的,但是你查询的时候从来不按照ID查询啊,这样的话即使是同一个分区的数据页会七零八落的分布到不同的地方,性能不会好吧。 
      

  3.   

    好问题,视图分区的主键必须创建复合主键,因为,branchcode为分区键,orderID用作指向分区表的外键约束。