对已有表进行分区

目标数据库: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:\DATA\PRODUCT1.ndf',
    SIZE=5,
    MAXSIZE=500,
    FILEGROWTH=1 
)
TO FILEGROUP FG1
GO
 
--添加次要数据文件
ALTER DATABASE BOEE
ADD FILE
(
    NAME=PRODUCT2,
    FILENAME=N'D:\DATA\PRODUCT2.ndf',
    SIZE=5,
    MAXSIZE=500,
    FILEGROWTH=1 
)
TO FILEGROUP FG2
GO
 
--添加次要数据文件
ALTER DATABASE BOEE
ADD FILE
(
    NAME=PRODUCT3,
    FILENAME=N'D:\DATA\PRODUCT3.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)

 

  本文章仅供参考,没有过多的解释

转载于:https://www.cnblogs.com/xuyubing/p/3785970.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值