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

Partition Range 的 Split 和 Merge 操作

时间:2015-12-13 21:48:14      阅读:440      评论:0      收藏:0      [点我收藏+]

标签:

对于分区表,在 empty partition 上进行 Partition Range 的 Split 和 Merge 操作,实际上是metadata-only change,Data 并不会移动。如果在 non-empty 的partition上进行split和merge,是十分耗时的。

 

Best Practice: Maintain an empty partition on both ends of the partitioned table and ensure that only empty partitions are split and merged in a sliding window scenario.

 

-- create parition function
CREATE PARTITION FUNCTION pf_int_Left (int)
AS 
RANGE LEFT 
FOR VALUES (10,20);

--create partition scheme
CREATE PARTITION SCHEME PS_int_Left
AS 
PARTITION pf_int_Left
TO ([primary], [primary], [primary]);

 

一,Split

拆分 Partition Range,增加一个Boundary value,将一个 partition 一分为二,增加分区。在拆分Partition时,首先在Partition Scheme上指定新分区用以存储数据的文件组,其次在Partition Function上指定新的Boundary value。

1,Mark Next Used FileGroup

--Mark Next Used FileGroup
alter partition scheme PS_int_Left
Next Used [primary]

2,Split Range

--Split Range using distinct boudary value
alter partition function pf_int_Left()
split range(30)

将Primary FileGroup 标记为next Used state,新增的partition就会使用标记为next Used state的FileGroup来存储数据。

 

二,Merge

删除分区,通过将两个“相邻”的分区合并在一起来实现,相邻是指partition column值在逻辑上相邻,由于不需要额外的FileGroup来存储数据,所以不需要显式改变Partition Scheme。在merge range之后,partition Scheme会自动将被删除partition的FileGroup 从FileGroup List中remove。

--Merge Range using existing boundary value
alter partition function pf_int_Left()
merge range(20)

 

三,分区操作的最佳实践

1,当需要删除整个分区时,可以使用以下方法:先将partition的data switch out 到一个新的 staging table,然后合并分区,drop staging table。

Use SWITCH with MERGE to drop partition data: Switch out the partition and remove the partition‘s boundary value using MERGE.Use Drop TABLE to delete partition data by switching a partition out to a staging table and truncating the staging table.

 

2,Split 分区时,可以先将分区的数据Switch out到一个staging table中,然后将数据导入到表中

 

3,Merge 分区

 

Partition Range 的 Split 和 Merge 操作

标签:

原文地址:http://www.cnblogs.com/ljhdo/p/5041605.html

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