服务器之家

服务器之家 > 正文

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

时间:2019-11-12 16:22     来源/作者:mssql教程网

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

[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, 待加入的表是否分区

算法如下:

获取到源表的分区列的值;

在源表上加上分区列值的唯一性限制;

然后确定是否有一个分区恰好能存放这个表;如果不存在,则返回;

在源表上创建和目标表一样的索引;

现在源表和目标结构一致,源表的内容能够存在目标分区上,使用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 索引是否在另一个分区函数上分区

算法如下:

首先根据源表的表结构复制一分临时表的表结构;

获取待删除分区的边界值;

在临时表上创建限制;

在这个表上创建索引;

将指定分区使用alter switch交换到临时表上;

删除临时表

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
返回顶部