目标数据库:BOEE
分区表:CB_PRODUCT
分区字段:ID
主要步骤:对于已经存在的表,我们可以采取以下步骤来对其创建分区表
1.添加文件组
2.设置默认的文件组
3.创建分区函数
4.创建分区架构并关联到分区函数
5.删除已经存在的聚集索引(我这里是主键,取消主键约束即删除了索引)
6.基于分区架构重建聚集索引
--修改数据库,创建文件组 ALTER DATABASE BOEE ADD FILEGROUP FG1 GO ALTER DATABASE BOEE ADD FILEGROUP FG2 GO ALTER DATABASE BOEE ADD FILEGROUP FG3 GO --添加次要数据文件 ALTER DATABASE BOEE ADD FILE ( NAME=PRODUCT1, FILENAME=N'D:DATAPRODUCT1.ndf', SIZE=5, MAXSIZE=500, FILEGROWTH=1 ) TO FILEGROUP FG1 GO --添加次要数据文件 ALTER DATABASE BOEE ADD FILE ( NAME=PRODUCT2, FILENAME=N'D:DATAPRODUCT2.ndf', SIZE=5, MAXSIZE=500, FILEGROWTH=1 ) TO FILEGROUP FG2 GO --添加次要数据文件 ALTER DATABASE BOEE ADD FILE ( NAME=PRODUCT3, FILENAME=N'D:DATAPRODUCT3.ndf', SIZE=5, MAXSIZE=500, FILEGROWTH=1 )TO FILEGROUP FG3 GO --设置默认的文件组 ALTER DATABASE BOEE MODIFY FILEGROUP FG1 DEFAULT GO /* *创建分区函数 *分区表中的Id范围为1-200000的数据被分到FG1中 *分区表中的Id范围为200001-400000数据被分到FG2中 *分区表中的Id范围为400000+的数据被分到FG3中 */ CREATE PARTITION FUNCTION PRODUCT_FUC(INT) AS RANGE LEFT FOR VALUES(200000,400000) GO --创建分区方案 CREATE PARTITION SCHEME PRODUCT_SCHEME AS PARTITION PRODUCT_FUC TO(FG1,FG2,FG3) GO --查看cb_product 索引情况 exec sp_helpindex N'cb_product' GO --解除主键约束 alter table cb_product drop constraint PK_cb_product GO ---重建索引(删除聚集索引以及需要分区字段的索引后重建该类索引,表被按分区值将分配到各文件组) CREATE CLUSTERED INDEX IDX_PRODUCT_ID ON CB_PRODUCT(ID) ON PRODUCT_SCHEME(ID) GO -- ALTER TABLE CB_PRODUCT ADD CONSTRAINT PK_PRODUCT_ID PRIMARY KEY(ID) GO --分区完成,大功告成 SELECT * FROM SYS.PARTITIONS GO
--查看分区情况
select $partition.PRODUCT_FUC(ID) as partition_num,count(*) as record_num from CB_PRODUCT group by $partition.PRODUCT_FUC(ID) order by $partition.PRODUCT_FUC(ID)
本文章仅供参考,没有过多的解释