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

MSSQL
SQL Server中删除重复数据的几个方法
SQL Server 基础概念集
SQL Server导入导出
SQL SERVER实用技巧
sql server 常用函数
如何维护SQL Server的“交易日志”
SQL Server数据备份处理过程探讨
JSP中tomcat的SQL Server2000数据库连接池的配置
SQL Server服务器安装剖析
SQL Server 2005数据加密技术应用研究
SQL Server数据库的备份和恢复措施
SQL Server 2005性能测试实践
Jboss下MS SQL Server配置指导
Oracle和SQL Server 追求完美还是讲求实用
SQL Server服务器安装剖析
SQL Server:Oracle与SQL Server事务处理的比较
SQL Server:利用配置文件实现SQL Server与Oralce访问类的转换
SQL Server:测试SQL Server业务规则链接方法
SQL Server :SQL Server 2008高可用性解决方案优劣分析
SQLServer:数据库恢复

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 97 ::
收藏到网摘: 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交换到临时表上;
删除临时表