广

MSSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

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

    2018-05-07 10:24:42 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布
    首先是将一个数据表加入到分区表的方法:
    [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交换到临时表上;
    删除临时表

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告