日期:2014-05-16  浏览次数:20529 次

亿级数据表分区实战总结(一些值得注意的问题)
具体怎么分区不讲,请看底部的参考文献。主要讲实践过程中一些问题。

1.SQL版本需求

只能SQL 2005及以上的企业版才支持表分区。如果装的不是企业版,可以直接通过企业版安装程序升级,注意用命令行启动安装程序:setup SKUUPGRADE=1。

2.分区的规划

对于亿级的数据表,比如销售表,常规是按照日期进行分区。但不是必须,比如笔者这次就是根据业务逻辑按照其中一个外键retailerid来分区,因为不同retailerid的数据很少交叉查询。所以,怎么分区,要结合具体业务和数据存取的特点。

3.自增列ID不能分区?

刚开始分区时有个误区,就是数据表的主键是自增列又是聚族索引,按照retailerid分区时提示分区列必须是聚族索引的一部分。所以关键是聚族索引。这种情况就是保留自增和主键,将聚族索引建到分区列上。

4.动态改变分区

有时需要动态改变分区,而且还要根据数据的变化,比如新注册一个retailerid,当有销售时才新增一个分区。这个时候需要编写调度动态改变分区。

5.分区和文件组

根据逻辑最好将分区和文件组一一对应,这样方便查询和管理。

6.性能的提升

通过分区后,性能提升是比较明显的。这里和第2条是相辅相成的,如果本实践中采用日期分区就没有按照retailerid效果好。

参考1:分区示例

参考2:sql参考

参考3:未分区转为已分区

参考4:T-SQL查询进阶--理解SQL SERVER中的分区表