位置: 编程技术 - 正文
推荐整理分享SQL Server实现自动循环归档分区数据脚本详解(sqlserver自动生成id),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sql server创建自定义函数,sql server如何,sql server怎么设置自增,sqlserver自定义函数教程,sqlserver自定义函数教程,sqlserver如何设置自增,sqlserver自定义函数教程,sql server怎么设置自增,内容如对您有帮助,希望把文章链接给更多的朋友!
概述
大家应该都知道在很多业务场景下我们需要对一些记录量比较大的表进行分区,同时为了保证性能需要将一些旧的数据进行归档。在分区表很多的情况下如果每一次归档都需要人工干预的话工程量是比较大的而且也容易发生纰漏。接下来分享一个自己编写的自动归档分区数据的脚本,原理是分区表和归档表使用相同的分区方案,循环利用当前的文件组,话不多说了,来一起看看详细的介绍吧。
一、创建测试数据
可以看到当前总共有4个分区,每一个分区定义的范围区间是万,分区4我故意多插入了多万的数据来验证自动归档分区。
二、自动归档分区脚本
三、自动归档分区数据
1.首次测试
注意:每调用一次归档一个最小分区的数据。
分区表的News分区1的数据被归档到了NewsArchived表中,且创建了分区5,分区5使用的是已归档的分区1的文件组,达到了循环利用文件组的效果。
2.再调用一次归档分区脚本
当分区表最大的id小于最大的分区值时自动归档分区脚本就不会生效。所以当前的测试表数据还可以再归档分区3的数据。
3.经过一段时间的运行归档数据可能是这样的效果
Group1→Group4→Group1→.......
四、脚本注意事项
1.@PartitionTable和@SwitchTable表必须使用同名的分区方案和分区函数,否则@SwitchTable就需要单独修改分区方案和函数,且表结构完全一致。
2.归档的表分区列数据类型必须是INT类型,且值是自增规律.
3.分区归档作业在备份作业后执行
4.建议使用Right分区,Left分区会出现有的最后一个分区文件组不会循环替换,一直处于分区的最后,比如Group1,Group2,Group3,Group1,Group2,Group3,Group1,Group4。期望的应该是Group1,Group2,Group3,Group4,Group1,Group2,Group3,Group4,Group1
5.注意我当前的每个分区大小是万和分区函数保持一致,如果范围值不同,需要修改最末尾代码的"修改分区函数"处代码.
总结
当前自动归档分区脚本如果要拷贝去用还是得能完全理解每一段代码,根据自己的业务做适当的修改,毕竟数据是无价的!!!。最后只需要创建一个作业定期跑作业就行,重复执行也不影响。
好了,
标签: sqlserver自动生成id
本文链接地址:https://www.jiuchutong.com/biancheng/347095.html 转载请保留说明!友情链接: 武汉网站建设