SQLServer 表分区 根据时间自动扩展分区
SQLServer 表分区 根据时间自动扩展分区
- 前提条件
- 创建文件组
- 创建文件并且将文件加入文件组
- 修改分区方案
- 修改分区函数
- 创建存储过程
- 利用各种定时任务执行以上存储过程
前提条件
- 已经创建好分区方案
- 已经创建好分区函数
创建文件组
'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) +')'
创建存储过程
- 以下存储过程是将上面每个步骤的整合
- 增加分区是针对分区方案和分区函数的,单纯增加分区这块来看,对表没有直接操作
- 基于第二条,凡是用了以上方案和函数的表都会增加分区
- 以下代码可以将exec替换成print 看从之态输出测试后在正式运行
- 如果想拿来就用建议测试测试,想深入点去官网看把…
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 表分区 根据时间自动扩展分区相关推荐
- linux怎么创建扩展分区,Linux磁盘创建扩展分区
Linux(CentOS6.5)下增加一块磁盘,创建扩展分区并挂载. 1.查看系统是否识别硬件,看到红框内有/dev/sdb磁盘还没有创建分区. 注:如果没有识别需要重启下电脑,或关闭电脑重新启动即可 ...
- linux自动创建分区,shell编程 自动创建分区
用shell脚本自动添加分区,已实现功能如下: 1.检查扩展分区是否,且是否可以添加,如果可以则把所有的剩余空间设置为扩展分区 2.当扩展分区存在,则输入要添加的分区大小,仅接受大于1的正整数 代码如 ...
- 查询表空间状态,创建表空间,让表空间的大小自动扩展,删除表空间
通过select * from DBA_DATA_FILES可以看到现在数据库中的表空间和状态. 其中AUTOEXTENSIBLE为是否自动扩展. 如果需要关闭自动扩展: alter database ...
- 使用partx重读磁盘分区信息及自动挂载分区的方法
在之前的帖子<Linux调整分区后Grub修复>中提到,Linux调整磁盘分区大小后会出现Grub引导损坏的问题,可以参考那篇帖子中的方法,进入grub rescue进行修复. 但是修复后 ...
- oracle字符串怎么自动分区,Oracle 11g下自动创建分区
11g之前,维护分区需要手工.11g之后使用interval来实现自动扩展分区,简化了维护. 根据年 INTERVAL(NUMTOYMINTERVAL(1,'YEAR')) 根据月 INTERVA ...
- 主分区、扩展分区、逻辑分区
一.主分区.扩展分区和逻辑分区 1.概念 主分区:也叫引导分区,最多能创建4个,最少有1个,当主分区创建了4个后,主分区和扩展分区就没有存在于这个世界上的理由了. 扩展分区:最多一个.严格意义上来讲它 ...
- Linux 创建MBR的磁盘的扩展分区、逻辑分区相关问题(parted)
>主要参考:parted空闲空间添加分区 >参考截图: 1.实验环境搭建:添加一块硬盘,并将该磁盘转换成MBR格式 [添加成功后查看结果] 2.讲该硬盘的格式转换成MBR格式(msdos) ...
- 硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍
我们知道硬盘的第一个扇区也就是第0扇区是用来存放主引导记录(MBR)的,因此也称MBR扇区.一个扇区是512字节,因此MBR的大小也是512字节,其具体数据结构是:446个字节的引导代码.64个字节的 ...
- (转)硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍...
场景:最近在学习Linux的基础知识,不可避免的设计到Linux的磁盘分区,以前做过总结,但是那种总结就是复制别人的文章,总结完就不想看第二遍,所以很容易就遗忘了!清楚明白的理解分区后,我就可以在自己 ...
最新文章
- 谈谈Mux与门电路的相互替换(包含实例分析)
- 【转】C# using的三种使用方法
- ios13苹方字体ttf_字体 | iOS1013 SF Compact Rounded 英文 By alex
- DECLARE_GLOBAL_DATA_PTR
- RHEL6.3更换163 centos源或本地源(适用rhel7)
- 删除误添加的本地github检查库文件
- 自定义动画(仿Win10加载动画)
- 如何把 .mobi 格式的电子书转换成 PDF
- 小米笔记本怎么进入pe系统?
- PPT插入Excel图标,如果水平翻转做出漂亮逻辑图表?
- 数据结构与算法 -- 基础篇
- 玩转NFT夏季:这份工具宝典值得收藏
- 为什么电子邮件的账号地址公司是统一的,电子邮件地址该怎么写?
- 故障诊断——奇异值分解法hankel矩阵
- (持续更新)一些黑科技和技巧
- C#中Get和Set的用法
- 【LTE】Qualcomm LTE Packets log 分析(三)LTE Access Stratum Log Analysis
- CCL: Cross-modal Correlation Learning With Multigrained Fusion by Hierarchical Network 论文笔记
- html怎么设置两块区域,将两个视频一左一右拼接 可裁剪画面并设置视频画面大小及位置...
- 2020老年产业过去|现在|未来:疫情促进“线上化”,各分支加速融合创新
热门文章
- 蓦然回首,一切都是浮云
- vue-admin-elem对接地图报错Unable to preventDefault inside passive event listener invocation.
- 真假屏幕测试软件,【当贝市场】如何检测电视屏幕真伪4K?两款工具一键辨别...
- LiFi比WiFi快100倍:它如何运作,实际应用靠谱吗
- 软件测试教程之手机软件测试方法
- python之base64加解密
- 大一新生的pta错题归纳
- 能率热水器存在严重质量隐患!千万不要购买!买了之后每年都需要自费维修!...
- 跟着游客闯世界,微信“出海”势不可挡!
- websphere上使用c3p0报错解决