SQLServer 表分区 根据时间自动扩展分区

  • 前提条件
  • 创建文件组
  • 创建文件并且将文件加入文件组
  • 修改分区方案
  • 修改分区函数
  • 创建存储过程
  • 利用各种定时任务执行以上存储过程

前提条件

  1. 已经创建好分区方案
  2. 已经创建好分区函数

创建文件组

'alter database ' + @Database + ' add filegroup ' + [@fileGroupName]

创建文件并且将文件加入文件组

'alter database ' + @Database + ' add file ' +'( ' +'name = ''' + @FileName + ''',' +'filename = ''' + @FilePath + '\' + @FileName + '.mdf '',' +'size = ' + @FileSize + ',' +'filegrowth = ' + @FileGrowth + ',' +'maxsize = ' + @FileMaxLimit + '' +')' +'to filegroup ' + @FileGroupName

修改分区方案

 'alter partition scheme ' + @SchemeName + ' next used ' + @FileGroupName

修改分区函数

这里注意range函数内日志格式,如果日志格式不对则会上下界限问题

 'alter partition function ' + @PartitionName + ' split range (' + CONVERT(varchar(30), getdate(), 120) +')'

创建存储过程

  1. 以下存储过程是将上面每个步骤的整合
  2. 增加分区是针对分区方案和分区函数的,单纯增加分区这块来看,对表没有直接操作
  3. 基于第二条,凡是用了以上方案和函数的表都会增加分区
  4. 以下代码可以将exec替换成print 看从之态输出测试后在正式运行
  5. 如果想拿来就用建议测试测试,想深入点去官网看把…
create procedure AutoExtendTrainMainDataPartition
as
begindeclare@FilePath                      varchar(100),--文件路径@FileName                      varchar(100),--文件名称@FileSize                      varchar(100),--文件大小@FileGrowth                    varchar(100),--文件增长@FileMaxLimit                  varchar(100),--文件最大限制@FileGroupName                 varchar(100),--文件组名称@Database                      varchar(100),--操作数据库@CurrentDateTimeByYearAndMonth varchar(100),--当前时间,年月@SchemeName                    varchar(100), --分区方案名称@PartitionName                 varchar(100), --分区名称@Random                        smallint,@sql                           varchar(400)-- 赋值文件属性set @FileSize = '3MB'set @FileGrowth = '10%'set @FileMaxLimit = 'unlimited'set @CurrentDateTimeByYearAndMonth = left(CONVERT(varchar(30), getdate(), 112), 6)set @FileName = 'TrainMainData_' + @CurrentDateTimeByYearAndMonthset @Random = cast(ceiling(rand() * 20) as int) -- 获取随机数,利用随机数决定当前执行脚本存放那块硬盘if @Random % 2 = 0set @FilePath = 'W:\yibiao\TrainMainDataPartitions'elseset @FilePath = 'Y:\yibiao\TrainMainDataPartitions'-- 赋值数据库属性set @Database = 'YiBiaoData'-- 赋值文件组属性set @FileGroupName = 'TrainMainData_' + @CurrentDateTimeByYearAndMonth-- 赋值分区属性set @SchemeName = 'AutoExtendScheme'set @PartitionName = 'AutoExtendPartition()'--创建文件组set @sql = 'alter database ' + @Database + ' add filegroup ' + @fileGroupName + ''exec(@sql)--创建组文件,将文件绑定于文件组
--创建文件,指定文件组set @sql = 'alter database ' + @Database + ' add file ' +'( ' +'name = ''' + @FileName + ''',' +'filename = ''' + @FilePath + '\' + @FileName + '.mdf '',' +'size = ' + @FileSize + ',' +'filegrowth = ' + @FileGrowth + ',' +'maxsize = ' + @FileMaxLimit + '' +')' +'to filegroup ' + @FileGroupNameexec(@sql)-- 修改分区方案set @sql = 'alter partition scheme ' + @SchemeName + ' next used ' + @FileGroupName + ''exec(@sql)-- 修改分区函数set @sql = 'alter partition function ' + @PartitionName + ' split range (' + CONVERT(varchar(30), getdate(), 120) +')'exec(@sql)end
go

利用各种定时任务执行以上存储过程

由于分区界限和分区名称等都是用时间为准,建议每月第一天最早时间执行

SQLServer 表分区 根据时间自动扩展分区相关推荐

  1. linux怎么创建扩展分区,Linux磁盘创建扩展分区

    Linux(CentOS6.5)下增加一块磁盘,创建扩展分区并挂载. 1.查看系统是否识别硬件,看到红框内有/dev/sdb磁盘还没有创建分区. 注:如果没有识别需要重启下电脑,或关闭电脑重新启动即可 ...

  2. linux自动创建分区,shell编程 自动创建分区

    用shell脚本自动添加分区,已实现功能如下: 1.检查扩展分区是否,且是否可以添加,如果可以则把所有的剩余空间设置为扩展分区 2.当扩展分区存在,则输入要添加的分区大小,仅接受大于1的正整数 代码如 ...

  3. 查询表空间状态,创建表空间,让表空间的大小自动扩展,删除表空间

    通过select * from DBA_DATA_FILES可以看到现在数据库中的表空间和状态. 其中AUTOEXTENSIBLE为是否自动扩展. 如果需要关闭自动扩展: alter database ...

  4. 使用partx重读磁盘分区信息及自动挂载分区的方法

    在之前的帖子<Linux调整分区后Grub修复>中提到,Linux调整磁盘分区大小后会出现Grub引导损坏的问题,可以参考那篇帖子中的方法,进入grub rescue进行修复. 但是修复后 ...

  5. oracle字符串怎么自动分区,Oracle 11g下自动创建分区

    11g之前,维护分区需要手工.11g之后使用interval来实现自动扩展分区,简化了维护. 根据年  INTERVAL(NUMTOYMINTERVAL(1,'YEAR')) 根据月  INTERVA ...

  6. 主分区、扩展分区、逻辑分区

    一.主分区.扩展分区和逻辑分区 1.概念 主分区:也叫引导分区,最多能创建4个,最少有1个,当主分区创建了4个后,主分区和扩展分区就没有存在于这个世界上的理由了. 扩展分区:最多一个.严格意义上来讲它 ...

  7. Linux 创建MBR的磁盘的扩展分区、逻辑分区相关问题(parted)

    >主要参考:parted空闲空间添加分区 >参考截图: 1.实验环境搭建:添加一块硬盘,并将该磁盘转换成MBR格式 [添加成功后查看结果] 2.讲该硬盘的格式转换成MBR格式(msdos) ...

  8. 硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍

    我们知道硬盘的第一个扇区也就是第0扇区是用来存放主引导记录(MBR)的,因此也称MBR扇区.一个扇区是512字节,因此MBR的大小也是512字节,其具体数据结构是:446个字节的引导代码.64个字节的 ...

  9. (转)硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍...

    场景:最近在学习Linux的基础知识,不可避免的设计到Linux的磁盘分区,以前做过总结,但是那种总结就是复制别人的文章,总结完就不想看第二遍,所以很容易就遗忘了!清楚明白的理解分区后,我就可以在自己 ...

最新文章

  1. 谈谈Mux与门电路的相互替换(包含实例分析)
  2. 【转】C# using的三种使用方法
  3. ios13苹方字体ttf_字体 | iOS1013 SF Compact Rounded 英文 By alex
  4. DECLARE_GLOBAL_DATA_PTR
  5. RHEL6.3更换163 centos源或本地源(适用rhel7)
  6. 删除误添加的本地github检查库文件
  7. 自定义动画(仿Win10加载动画)
  8. 如何把 .mobi 格式的电子书转换成 PDF
  9. 小米笔记本怎么进入pe系统?
  10. PPT插入Excel图标,如果水平翻转做出漂亮逻辑图表?
  11. 数据结构与算法 -- 基础篇
  12. 玩转NFT夏季:这份工具宝典值得收藏
  13. 为什么电子邮件的账号地址公司是统一的,电子邮件地址该怎么写?
  14. 故障诊断——奇异值分解法hankel矩阵
  15. (持续更新)一些黑科技和技巧
  16. C#中Get和Set的用法
  17. 【LTE】Qualcomm LTE Packets log 分析(三)LTE Access Stratum Log Analysis
  18. CCL: Cross-modal Correlation Learning With Multigrained Fusion by Hierarchical Network 论文笔记
  19. html怎么设置两块区域,将两个视频一左一右拼接 可裁剪画面并设置视频画面大小及位置...
  20. 2020老年产业过去|现在|未来:疫情促进“线上化”,各分支加速融合创新

热门文章

  1. 蓦然回首,一切都是浮云
  2. vue-admin-elem对接地图报错Unable to preventDefault inside passive event listener invocation.
  3. 真假屏幕测试软件,【当贝市场】如何检测电视屏幕真伪4K?两款工具一键辨别...
  4. LiFi比WiFi快100倍:它如何运作,实际应用靠谱吗
  5. 软件测试教程之手机软件测试方法
  6. python之base64加解密
  7. 大一新生的pta错题归纳
  8. 能率热水器存在严重质量隐患!千万不要购买!买了之后每年都需要自费维修!...
  9. 跟着游客闯世界,微信“出海”势不可挡!
  10. websphere上使用c3p0报错解决