SQL Server通用的分区增加和删除的算法

本算法默认分去函数中已经包含了足够多的分区。不需要我们去动态的创建分区。

 

首先是将一个数据表加入到分区表的方法:

[dbo].[SP_Helper_Partition_Add]
 @SrcTable nvarchar(256), 待加入的表
 @DestTable nvarchar(256), 目标表
 @idxOnDest nvarchar(1024), 目标表上的索引创建语句
 @Partition_func_name nvarchar(256), 分区函数
 @PartCol nvarchar(256), 分区的列
 @SonIsPart tinyint=1, 待加入的表是否分区

 

算法如下:

  1. 获取到源表的分区列的值;
  2. 在源表上加上分区列值的唯一性限制;
  3. 然后确定是否有一个分区恰好能存放这个表;如果不存在,则返回;
  4. 在源表上创建和目标表一样的索引;
  5. 现在源表和目标结构一致,源表的内容能够存在目标分区上,使用alter table switch完成分区;

删除一个分区的算法

[dbo].[SP_Helper_Partition_Delete]
 @SrcTable nvarchar(256), 从该表中删除分区
 @IdxOnTable nvarchar(1024), 该表上的索引创建语句
 @Part_func nvarchar(256), 分区函数名
 @PartCol nvarchar(256), 分区列
 @PartIndex int, 待删除分区的索引
 @IdxIsPart tinyint 索引是否在另一个分区函数上分区

 

算法如下:

  1. 首先根据源表的表结构复制一分临时表的表结构;
  2. 获取待删除分区的边界值;
  3. 在临时表上创建限制;
  4. 在这个表上创建索引;
  5. 将指定分区使用alter switch交换到临时表上;
  6. 删除临时表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值