码迷,mamicode.com
首页 > 其他好文 > 详细

对已有表进行分区

时间:2014-06-15 07:10:55      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:class   blog   文件   数据   art      

目标数据库:BOEE

分区表:CB_PRODUCT

分区字段:ID

主要步骤:对于已经存在的表,我们可以采取以下步骤来对其创建分区表

  1.添加文件组

  2.设置默认的文件组

     3.创建分区函数
     4.创建分区架构并关联到分区函数
     5.删除已经存在的聚集索引(我这里是主键,取消主键约束即删除了索引)
     6.基于分区架构重建聚集索引

 

--修改数据库,创建文件组
ALTER DATABASE BOEE
ADD FILEGROUP FG10000
GO
ALTER DATABASE BOEE
ADD FILEGROUP FG20000
GO
ALTER DATABASE BOEE
ADD FILEGROUP FG30000
GO

--添加次要数据文件
ALTER DATABASE BOEE
ADD FILE
(
	NAME=PRODUCT10000,
	FILENAME=N‘D:\DATA\PRODUCT10000.ndf‘,
	SIZE=5,
	MAXSIZE=500,
	FILEGROWTH=1 
),
(
	NAME=PRODUCT20000,
	FILENAME=N‘D:\DATA\PRODUCT20000.ndf‘,
	SIZE=5,
	MAXSIZE=500,
	FILEGROWTH=1 
),
(
	NAME=PRODUCT30000,
	FILENAME=N‘D:\DATA\PRODUCT30000.ndf‘,
	SIZE=5,
	MAXSIZE=500,
	FILEGROWTH=1 
)
TO FILEGROUP FG10000
GO

--添加次要数据文件
ALTER DATABASE BOEE
ADD FILE
(
	NAME=PRODUCT60000,
	FILENAME=N‘E:\DATA\PRODUCT60000.ndf‘,
	SIZE=5,
	MAXSIZE=500,
	FILEGROWTH=1 
),
(
	NAME=PRODUCT40000,
	FILENAME=N‘E:\DATA\PRODUCT40000.ndf‘,
	SIZE=5,
	MAXSIZE=500,
	FILEGROWTH=1 
),
(
	NAME=PRODUCT50000,
	FILENAME=N‘E:\DATA\PRODUCT50000.ndf‘,
	SIZE=5,
	MAXSIZE=500,
	FILEGROWTH=1 
)TO FILEGROUP FG20000
GO

--添加次要数据文件
ALTER DATABASE BOEE
ADD FILE
(
	NAME=PRODUCT70000,
	FILENAME=N‘G:\DATA\PRODUCT70000.ndf‘,
	SIZE=5,
	MAXSIZE=500,
	FILEGROWTH=1 
),
(
	NAME=PRODUCT80000,
	FILENAME=N‘G:\DATA\PRODUCT80000.ndf‘,
	SIZE=5,
	MAXSIZE=500,
	FILEGROWTH=1 
),
(
	NAME=PRODUCT90000,
	FILENAME=N‘E:\DATA\PRODUCT90000.ndf‘,
	SIZE=5,
	MAXSIZE=500,
	FILEGROWTH=1 
)TO FILEGROUP FG30000
GO

--设置默认的文件组
ALTER DATABASE BOEE
MODIFY FILEGROUP FG10000  DEFAULT
GO
--创建分区函数
CREATE PARTITION FUNCTION PRODUCT_FUC(INT) AS RANGE LEFT FOR VALUES(10000,20000)
GO
--创建分区方案
CREATE PARTITION SCHEME PRODUCT_SCHEME
AS PARTITION PRODUCT_FUC TO(FG10000,FG20000,FG30000)
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)

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

对已有表进行分区,布布扣,bubuko.com

对已有表进行分区

标签:class   blog   文件   数据   art      

原文地址:http://www.cnblogs.com/xuyubing/p/3785970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!