具体怎么分区不讲,请看底部的参考文献。主要讲实践过程中一些问题。
1.SQL版本需求
只能SQL 2005及以上的企业版才支持表分区。如果装的不是企业版,可以直接通过企业版安装程序升级,注意用命令行启动安装程序:setup SKUUPGRADE=1。
2.分区的规划
对于亿级的数据表,比如销售表,常规是按照日期进行分区。但不是必须,比如笔者这次就是根据业务逻辑按照其中一个外键retailerid来分区,因为不同retailerid的数据很少交叉查询。所以,怎么分区,要结合具体业务和数据存取的特点。
3.自增列ID不能分区?
刚开始分区时有个误区,就是数据表的主键是自增列又是聚族索引,按照retailerid分区时提示分区列必须是聚族索引的一部分。所以关键是聚族索引。这种情况就是保留自增和主键,将聚族索引建到分区列上。
4.动态改变分区
有时需要动态改变分区,而且还要根据数据的变化,比如新注册一个retailerid,当有销售时才新增一个分区。这个时候需要编写调度动态改变分区。
5.分区和文件组
根据逻辑最好将分区和文件组一一对应,这样方便查询和管理。
6.性能的提升
通过分区后,性能提升是比较明显的。这里和第2条是相辅相成的,如果本实践中采用日期分区就没有按照retailerid效果好。