当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQLServer 通用的分区增加和删除的算法

MSSQL
SQL Server导入导出数据三种方式比较
SQL Server_8525引擎错误怎么办?
Sql Server的复制功能快速学习
汇总SQL Server 2000安装常见问题
存储过程实例:SQL Server Sa密码破解
SQL Server危险扩展删除与恢复详解
SQL Server注入的四种个人经验和技巧方法
SQL Server对上亿表的排序和join的问题解决
使用SQL Server中COALESCE()函数的方法
SQL Server 2005混合模式登录配置
解决SQL Server不允许进行远程连接
SQL Server 2005的output子句用法
Oracle和SQL Server分析挖掘函数
mysql INSERT command denied to user
未与信任 SQL Server 连接相关
SQL Server存储的层级数据读出成树显示
SQL Server存储层级数据实现无限级分类
MySQL server has gone away问题原因
sqlserver与oracle的区别
mysql与sqlserver的所有区别

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 141 ::
收藏到网摘: n/a

本算法默认分去函数中已经包含了足够多的分区。不需要我们去动态的创建分区。 首先是将一个数据表加入到分区表的方法:
[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交换到临时表上;
删除临时表