久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 數據庫 > SQL Server > 正文

SQL Server實現自動循環歸檔分區數據腳本詳解

2024-08-31 01:05:07
字體:
來源:轉載
供稿:網友

概述

大家應該都知道在很多業務場景下我們需要對一些記錄量比較大的表進行分區,同時為了保證性能需要將一些舊的數據進行歸檔。在分區表很多的情況下如果每一次歸檔都需要人工干預的話工程量是比較大的而且也容易發生紕漏。接下來分享一個自己編寫的自動歸檔分區數據的腳本,原理是分區表和歸檔表使用相同的分區方案,循環利用當前的文件組,話不多說了,來一起看看詳細的介紹吧。

一、創建測試數據

sql;">----01創建文件組USE [master]GOALTER DATABASE [chenmh] ADD FILEGROUP [Group1]GOALTER DATABASE [chenmh] ADD FILEGROUP [Group2]GOALTER DATABASE [chenmh] ADD FILEGROUP [Group3]GOALTER DATABASE [chenmh] ADD FILEGROUP [Group4]GOUSE [master]GOALTER DATABASE [chenmh] ADD FILE ( NAME = N'datafile1', FILENAME = N'C:/Program Files/Microsoft SQL Server/MSSQL12.MSSQLSERVER/MSSQL/DATA/datafile1.ndf' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [Group1]GOALTER DATABASE [chenmh] ADD FILE ( NAME = N'datafile2', FILENAME = N'C:/Program Files/Microsoft SQL Server/MSSQL12.MSSQLSERVER/MSSQL/DATA/datafile2.ndf' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [Group2]GOALTER DATABASE [chenmh] ADD FILE ( NAME = N'datafile3', FILENAME = N'C:/Program Files/Microsoft SQL Server/MSSQL12.MSSQLSERVER/MSSQL/DATA/datafile3.ndf' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [Group3]GOALTER DATABASE [chenmh] ADD FILE ( NAME = N'datafile4', FILENAME = N'C:/Program Files/Microsoft SQL Server/MSSQL12.MSSQLSERVER/MSSQL/DATA/datafile4.ndf' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [Group4]GO----02創建分區函數USE [chenmh]GOCREATE PARTITION FUNCTION [Pt_Range](BIGINT) AS RANGE RIGHT FOR VALUES (1000000, 2000000, 3000000)GO----03創建分區方案,分區方案對應的文件組數是分區函數指定的數量+1CREATE PARTITION SCHEME Ps_RangeAS PARTITION Pt_RangeTO (Group1, Group2, Group3, Group4);---04創建表,指定的分區列的數據類型一定要和分區函數指定的列類型一致。CREATE TABLE [dbo].[News]( [id] [bigint] NOT NULL, [status] [int] NULL, CONSTRAINT [PK_News] PRIMARY KEY CLUSTERED ( [id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Ps_Range](id)) ON [Ps_Range](id)-----創建歸檔分區表CREATE TABLE [dbo].[NewsArchived]( [id] [bigint] NOT NULL, [status] [int] NULL, CONSTRAINT [PK_NewsArchived] PRIMARY KEY CLUSTERED ( [id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Ps_Range](id)) ON [Ps_Range](id)----插入測試數據DECLARE @id INT SET @id=1WHILE @id<5001000BEGIN INSERT INTO News VALUES(@id,@id%2) SET @id=@id+1END

sqlserver,分區,sql,server自動歸檔,server,歸檔

可以看到當前總共有4個分區,每一個分區定義的范圍區間是100萬,分區4我故意多插入了200多萬的數據來驗證自動歸檔分區。

二、自動歸檔分區腳本

CREATE PROCEDURE Pro_Partition_AutoArchiveData(@PartitionTable VARCHAR(300),@SwitchTable VARCHAR(300))ASBEGINDECLARE @FunName VARCHAR(100),@SchemaName VARCHAR(100),@MaxPartitionValue sql_variant---根據歸檔表查找對應的分區方案、分區函數、最小分區數、最大分區范圍值SELECT DISTINCT@FunName=MAX(pf.name),@SchemaName=MAX(ps.name), @MaxPartitionValue=max(isnull(prv.value,0))FROM sys.partitions p inner join sys.indexes i ON p.object_id=i.object_id and p.index_id=i.index_idinner join sys.partition_schemes ps ON i.data_space_id=ps.data_space_idinner join sys.destination_data_spaces dds ON ps.data_space_id=dds.partition_scheme_id and dds.destination_id=p.partition_numberinner join sys.data_spaces ds ON dds.data_space_id=ds.data_space_idinner join sys.partition_functions pf ON ps.function_id=pf.function_idLEFT join sys.partition_range_values prv ON pf.function_id=prv.function_id AND prv.boundary_id=p.partition_number-pf.boundary_value_on_rightLEFT join sys.partition_parameters pp ON prv.function_id=pp.function_id and prv.parameter_id=pp.parameter_idLEFT join sys.types t ON pp.system_type_id=t.system_type_id and pp.user_type_id=t.user_type_idWHERE OBJECT_NAME(p.OBJECT_ID)=@PartitionTableDECLARE @MaxId BIGINT,@MinId BIGINT,@Sql NVARCHAR(MAX),@GroupName VARCHAR(100),@MinPartitionNumber INTSET @Sql= N'SELECT @MaxId=MAX(id),@MinId=Min(id) FROM '+@PartitionTableEXEC sp_executesql @Sql,N'@MaxId BIGINT out,@MinId BIGINT out',@MaxId OUT,@MinId OUTSELECT @FunName AS FunName,@SchemaName AS SchemaName,@MaxPartitionValue AS MaxPartitionValue ,@MaxId AS MaxId,@MinId AS MinId---判斷當前表的最大的id是否已經在最大的分區中IF @MaxId>=@MaxPartitionValue BEGIN ----歸檔分區數據,根據表的最小值找到它所屬的分區. SET @Sql= N'SELECT @MinPartitionNumber=$PARTITION.'+@FunName+N'('+CONVERT(VARCHAR(30),@MinId)+N')'; EXEC sp_executesql @Sql,N'@MinPartitionNumber INT out',@MinPartitionNumber OUT SET @Sql=N'ALTER TABLE ' +@PartitionTable+ N' SWITCH PARTITION '+CONVERT(VARCHAR(10),@MinPartitionNumber)+ N' TO ' +@SwitchTable+ N' PARTITION ' +CONVERT(VARCHAR(10),@MinPartitionNumber); --PRINT @Sql EXEC (@Sql) ---修改分區方案,增加新的分區對應的文件組,根據最小的分區id找到對應的文件組。 SELECT  DISTINCT @GroupName=ds.name FROM sys.partitions p inner join sys.indexes i ON p.object_id=i.object_id and p.index_id=i.index_id inner join sys.partition_schemes ps ON i.data_space_id=ps.data_space_id inner join sys.destination_data_spaces dds ON ps.data_space_id=dds.partition_scheme_id and dds.destination_id=p.partition_number inner join sys.data_spaces ds ON dds.data_space_id=ds.data_space_id inner join sys.partition_functions pf ON ps.function_id=pf.function_id WHERE pf.name=@FunName AND ps.name=@SchemaName AND p.partition_number=@MinPartitionNumber SET @Sql=N'ALTER PARTITION SCHEME '+@SchemaName+N' NEXT USED '+@GroupName --PRINT @Sql EXEC (@Sql) ---修改分區函數,增加新的分區,增加新的分區范圍值,在現有的最大的值的基礎上加100萬(需要和現有的分區函數的范圍保持一致) SET @MaxPartitionValue=CONVERT(BIGINT,@MaxPartitionValue)+1000000 SET @Sql=N'ALTER PARTITION FUNCTION '+@FunName+N'('+N')'+N' SPLIT RANGE ('+CONVERT(VARCHAR(30),@MaxPartitionValue)+N')' --PRINT @Sql EXEC (@Sql) ENDEND

三、自動歸檔分區數據

1.首次測試

EXEC Pro_Partition_AutoArchiveData 'news','NewsArchived';

注意:每調用一次歸檔一個最小分區的數據。

sqlserver,分區,sql,server自動歸檔,server,歸檔

sqlserver,分區,sql,server自動歸檔,server,歸檔

分區表的News分區1的數據被歸檔到了NewsArchived表中,且創建了分區5,分區5使用的是已歸檔的分區1的文件組,達到了循環利用文件組的效果。

2.再調用一次歸檔分區腳本

sqlserver,分區,sql,server自動歸檔,server,歸檔

當分區表最大的id小于最大的分區值時自動歸檔分區腳本就不會生效。所以當前的測試表數據還可以再歸檔分區3的數據。

3.經過一段時間的運行歸檔數據可能是這樣的效果

sqlserver,分區,sql,server自動歸檔,server,歸檔

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.注意我當前的每個分區大小是100萬和分區函數保持一致,如果范圍值不同,需要修改最末尾代碼的"修改分區函數"處代碼.

總結

當前自動歸檔分區腳本如果要拷貝去用還是得能完全理解每一段代碼,根據自己的業務做適當的修改,畢竟數據是無價的!!!。最后只需要創建一個作業定期跑作業就行,重復執行也不影響。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲天堂一二三| 北条麻妃在线视频观看| 精品国产sm最大网站| 9i看片成人免费看片| 日韩精品视频一二三| 日本亚洲自拍| 国产成人免费av| 亚洲第一页综合| 日本午夜精品理论片a级appf发布| 成人免费在线小视频| 亚洲av无一区二区三区| 日韩一区二区电影在线| 69视频在线观看免费| 亚洲免费视频观看| www.99re6| 日韩一级裸体免费视频| 日韩三级视频在线看| 美国精品一区二区| 日韩污视频在线观看| 国产香蕉在线视频| 91精品久久久久久综合乱菊 | 日韩中文欧美在线| www.精品在线| 久久精品一区蜜桃臀影院| 久久久久久久久久久久91| 精品三级av在线| 性做久久久久久免费观看| 无码人妻丰满熟妇区bbbbxxxx| 国产欧美一级片| 可以在线看黄的网站| 亚洲高清在线观看一区| 国产精品午夜久久| 成年人二级毛片| 欧洲一区二区av| 精品人妻人人做人人爽| 亚洲精品ady| 日韩成人av影院| 亚洲免费观看高清| 伊人av成人| 91天堂素人约啪| 国产精品一区二区三区久久久| 在线观看日本视频| 日韩专区在线观看| 国产视频1区2区| 日本aⅴ大伊香蕉精品视频| 欧美精品二区三区| 97人洗澡人人免费公开视频碰碰碰| 国产乱淫片视频| 亚洲国产成人在线播放| 欧美在线aaa| 国产伦精品一区二区三区免.费 | 日韩美女一区二区三区四区| 亚洲熟女乱综合一区二区| 91小视频在线免费看| 日本一区免费看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 天天干,天天干| 中文在线字幕av| 国产av无码专区亚洲av麻豆| 亚洲av成人无码久久精品老人| 久久性天堂网| 成a人片国产精品| 国产精品乱码一区二区三区软件| 性欧美疯狂xxxxbbbb| 欧美午夜片在线观看| 日韩第一页在线| 国产一区二区三区丝袜| 91av视频在线| 国产精品区一区二区三在线播放| 麻豆中文一区二区| 波多野结衣 作品| 97超碰国产精品| 亚洲天堂av一区二区| 国产精品扒开腿做爽爽| 欧美精品成人久久| 国产丰满果冻videossex| 狠狠色综合日日| 国产精品美女一区二区在线观看| 亚洲成人综合网站| 亚洲成人久久一区| 日本aⅴ大伊香蕉精品视频| 国产伦精品一区二区三区视频黑人 | 在线播放中文一区| 精品国产一区二区三区久久久狼| 国产精品国产三级国产aⅴ浪潮| 欧洲精品亚洲精品| 欧洲美女亚洲激情| 日本网站在线免费观看| 久久黄色片网站| 性日韩欧美在线视频| 成人免费午夜电影| 欧美一区二区高清在线观看| 免费黄色福利视频| 中文天堂资源在线| 亚洲精品久久久久久久久久| 国产日韩高清在线| 欧美成人aa大片| 国产高清在线不卡| wwwwww欧美| 亚洲欧美va天堂人熟伦| 精品人妻午夜一区二区三区四区| caoporen国产精品视频| 69堂成人精品免费视频| 青青a在线精品免费观看| 伊人久久大香线蕉午夜av| 成人区人妻精品一区二| 在线播放国产一区| 99国产精品国产精品久久| 91精品国产麻豆| 国产精品视频自在线| 国产免费黄色小视频| 国产一二三四区| 99久久99久久精品| 可以看的av网址| 日韩久久精品视频| 国产久卡久卡久卡久卡视频精品| 波多野结衣中文一区| 中文字幕视频一区二区在线有码| 91精品国产91久久久久福利| 永久免费网站视频在线观看| 免费人成又黄又爽又色| 日韩不卡一二三区| 欧美视频中文字幕在线| 日本精品视频在线播放| 老太脱裤子让老头玩xxxxx| 精品无码免费视频| 成人亚洲一区二区一| 欧美成人精品3d动漫h| 96国产粉嫩美女| 亚洲另类第一页| 国产色综合视频| 亚洲影院在线观看| 91精品国产亚洲| 黄色国产精品视频| 亚洲图片在线播放| 亚洲精品v日韩精品| 欧美多人爱爱视频网站| 可以在线看的av网站| 在线观看日韩中文字幕| 亚洲国产精品av| 在线亚洲国产精品网| 一本色道久久综合亚洲精品婷婷| 又嫩又硬又黄又爽的视频| 国产成人综合精品三级| 亚洲老头同性xxxxx| 亚洲高清乱码| 国产午夜激情视频| 亚洲乱码国产乱码精品精98午夜 | 五月天av网站| 2020国产精品自拍| 欧美劲爆第一页| 国产嫩草在线观看| 日本韩国在线观看| 欧美大片一区二区| 青草全福视在线| 亚洲天堂网在线观看视频| 日韩欧美中文第一页| 国产精品一区二区在线观看| 东方av正在进入| 亚洲免费观看在线观看| 亚洲最大成人网色| 丝袜美腿小色网| 亚洲精品视频在线观看网站| 成人激情电影一区二区| 天天色影综合网| 国产精品国产三级国产aⅴ原创 | 欧美激情在线观看视频免费| 国内精品一区二区三区四区| 亚洲一区和二区| 成人综合激情网| 77777少妇光屁股久久一区| 自拍视频一区二区| 国产精品午夜在线观看| 99re6在线| 国产精品美女久久久久av爽| 亚洲成av人影院| 国产一区国产精品| 国产成人综合欧美精品久久| 色哟哟在线观看一区二区三区| 欧美一区二区高清在线观看| 97超碰国产在线| 精品国产91久久久久久久妲己| 老太脱裤子让老头玩xxxxx| 日韩成人伦理电影在线观看| 久久精品视频导航| 艳妇乳肉亭妇荡乳av| 中文字幕av一区二区三区高| 99国内精品久久久久久久软件| 亚洲国产精一区二区三区性色| 日韩欧美中文字幕在线观看 | 波多野结衣在线aⅴ中文字幕不卡| 国产午夜精品一区| 欧美乱大交xxxxx另类电影| 日韩在线一区视频| 91在线视频免费观看| 国产精品久久视频| 欧美日韩在线国产| 欧美最猛黑人xxxxx猛交| 日韩视频 中文字幕| 亚洲乱熟女一区二区| 怡红院精品视频| 丝袜熟女一区二区三区| 亚洲午夜av在线| 亚洲巨乳在线观看| 老司机久久99久久精品播放免费| 欧美巨乳美女视频| 怡红院一区二区三区| 欧美色视频日本版| 自慰无码一区二区三区| 不卡的av中国片| 久久精品国产第一区二区三区最新章节 | 99视频有精品| 国产精品免费在线免费| 欧美日韩在线视频播放| 国产一区二区三区视频在线观看| 亚洲综合网在线观看| 在线观看91视频| 精品亚洲一区二区三区四区| 亚洲另类在线一区| 久久人人爽人人爽人人av| 高清视频一区二区| 女人一区二区三区| 精品夜夜嗨av一区二区三区| 亚洲一区二区在线播放| 日本激情一区二区| 国产精品激情自拍| 午夜免费福利视频| 国产精品激情av电影在线观看| 国产情侣一区二区| 国产精品 欧美在线| 中文字幕在线播放av| 国内揄拍国内精品| 国产又色又爽又黄又免费| 国内精品美女av在线播放| 特黄视频免费看| 久久久久久国产三级电影| 日韩一级在线视频| 日本a级片电影一区二区| 国产熟女一区二区三区四区| 国产精品丝袜白浆摸在线 | 国产精品91在线观看| 91九色蝌蚪91por成人| 2019中文字幕全在线观看| 国产乱码一区二区| 国产免费一区二区三区香蕉精| 老牛影视av牛牛影视av| 91人成网站www| 麻豆成人久久精品二区三区小说| 激情欧美一区二区三区中文字幕| 精久久久久久久久久久| 一区二区三区国产福利| 国产精品成人一区二区艾草| 日本在线观看免费视频| 在线视频你懂得一区| 亚洲第一成人网站| 亚洲欧洲在线播放| 国产三级精品三级在线观看| 欧美一级黑人aaaaaaa做受| 欧美在线 | 亚洲| 国产精品一区二| av在线一区二区| 两根大肉大捧一进一出好爽视频| 亚洲成人777| 黄色录像a级片| 亚洲欧美日韩一区在线| 你懂的网址一区二区三区| 国产福利一区二区三区视频在线| 午夜一区二区三区| 在线免费看视频| 视频在线观看一区二区| 日批视频免费观看| 国产日本欧美视频| 成人免费高清视频| 国产又大又黄又粗的视频| 3d动漫精品啪啪1区2区免费| 久久久久久激情| 国产成人鲁鲁免费视频a| 精品一区二区三区久久久| 青青草免费在线视频观看| 一本一道久久a久久精品| 亚洲a∨无码无在线观看| 久久久综合免费视频| 蜜臀精品一区二区三区在线观看 | 国产一级一级国产| 久久精品国产一区| 日本激情一区二区三区| 亚洲美女网站18| 精品久久久久久久久久ntr影视| 日本黄色动态图| 最新亚洲国产精品| 视频在线观看一区二区三区| 免费cad大片在线观看| 精品污污网站免费看| 黄色小说在线观看视频| 国产精品久久久久久一区二区| 国产精品1024久久| 99re精彩视频| 精品亚洲精品福利线在观看| 国产美女三级无套内谢| 日韩欧美视频一区二区| 在线观看三级视频欧美| 国产免费一区二区三区四区五区| 国产视频一区二区三区四区| 亚洲黄色av一区| 免费成人深夜夜行网站| 国产欧美一区二区三区久久人妖| 国产亚洲一本大道中文在线| 粉嫩av懂色av蜜臀av分享| 91成品人片a无限观看| 91免费小视频| 人人爽人人爽人人片| 91日韩在线视频| 天天操天天色综合| 成人免费视频毛片| 亚洲成色最大综合在线| 欧美va亚洲va在线观看蝴蝶网| 亚洲精品97久久中文字幕无码| 国产一级爱c视频| 亚洲无线码在线一区观看| 国产一区二区久久| 第四色在线视频| 成人免费看吃奶视频网站| 亚洲国产日韩一区二区| 欧产日产国产69| 国产高清免费在线| 亚洲欧洲激情在线| www.日韩大片| 精品国产精品国产精品| 欧洲一区二区在线| 亚洲国产中文字幕久久网| 国产一区二区免费视频| 国产又粗又猛又爽又黄av| 高清不卡一区二区三区| 欧美日韩小视频| 美女性感视频久久| 久久中文字幕精品| 水蜜桃一区二区| 亚洲天堂av在线播放| youjizz久久| 国产精品99精品| www.日本少妇| 午夜精品三级视频福利| 亚洲福中文字幕伊人影院| 国产精品久久久久久久免费| 九热视频在线观看| 国产精品视频最多的网站| 欧美日韩在线电影| 极品销魂美女一区二区三区| 国产一二三av| 欧美 亚洲 视频| 久久免费视频这里只有精品| 亚洲最新视频在线播放| 高h调教冰块play男男双性文| 一区二区三区四区毛片| 成人看片视频| 国产午夜精品一区理论片飘花| 欧美激情一区在线观看| 国产成人精品一区二三区四区五区 | av地址在线观看| 成人综合色站| 视频一区视频二区国产精品 | 欧美精品久久一区二区三区| 国产在线观看一区二区| 男女羞羞免费视频| 无罩大乳的熟妇正在播放| 欧美影院在线播放| 欧美绝品在线观看成人午夜影视| 国产一区不卡在线| 久久久久女人精品毛片九一| 91看片破解版| 免费在线国产精品| 久久久久久久网站| 欧美日韩国产系列| 久久久.com| 亚洲 美腿 欧美 偷拍| 情侣偷拍对白清晰饥渴难耐| 日韩av一二三四区| 99久久99久久| 久久亚洲精品一区二区| 色网综合在线观看| 成人福利视频在线| 成 人片 黄 色 大 片| 一级性生活免费视频| 中文字幕第80页| 欧美重口乱码一区二区| 国产91色在线| 91精品国产欧美日韩| 国产亚洲欧美日韩在线一区| 欧美一区二区三区激情| 日韩女优一区二区| 一本一道久久a久久综合蜜桃| 久久久久久久有限公司| 国自在线精品视频| 亚洲欧美精品suv| 在线观看www91| 国产亚洲人成网站| 免费观看在线色综合| 欧美成人免费观看| 亚洲精品成人三区| 国产成人精品视频在线| 欧美不卡在线视频| 欧美日韩国产色视频| 国产女人水真多18毛片18精品视频 | 精品系列免费在线观看| 国产一级精品毛片| 伊人久久久久久久久久久久久久| 男人添女人下面免费视频| 秋霞在线一区二区| 国产在线精品一区二区三区| 国产噜噜噜噜久久久久久久久|