SQL SERVER 分区表
由于中途浏览器挂掉,不想重写,贴代码算了
1 USE master 2 GO 3 4 -------------------创建数据库与分区文件组-------------------------------------- 5 /****************************************************************************** 6 Create Database test1 ON Primary 7 ( 8 name = N‘test1‘, 9 filename = N‘d:\test1.mdf‘, 10 size = 3MB, 11 Maxsize = 100MB, 12 filegrowth = 10% 13 ), 14 15 filegroup FG1 16 ( 17 name = N‘file1‘, 18 filename = N‘d:\file1.ndf‘, 19 size = 1MB, 20 maxsize = 100MB, 21 filegrowth = 10% 22 ), 23 24 filegroup FG2 25 ( 26 name = N‘file2‘, 27 filename = N‘d:\file2.ndf‘, 28 size = 1MB, 29 maxsize = 100MB, 30 filegrowth = 10% 31 ), 32 33 filegroup FG3 34 ( 35 name = N‘file3‘, 36 filename = N‘d:\file3.ndf‘, 37 size = 1MB, 38 maxsize = 100MB, 39 filegrowth = 10% 40 ) 41 42 LOG ON 43 ( 44 name = N‘test1_log‘, 45 filename = N‘d:\test1_log.ldf‘, 46 size = 1MB, 47 maxsize = 30MB, 48 filegrowth = 10% 49 ) 50 51 go 52 53 ******************************************************************/ 54 55 USE test1 56 GO 57 --------------------------创建分区函数----------------------------- 58 --Create partition function pf_orderID(int) 59 --as range left for values(10,20) 60 61 --GO 62 63 --------------------------创建分区方案------------------------------ 64 --Create partition scheme ps_orderID 65 --As partition pf_orderID 66 --To (FG1,FG2,FG3) 67 --GO 68 69 -------------------------创建分区表--------------------------------- 70 /****************************************************************** 71 USE test1 72 GO 73 74 Create Table orders 75 ( 76 orderID int not null primary key, 77 customerID int not null, 78 customerNM char(20), 79 orderdate datetime 80 ) 81 82 ON ps_orderID(orderID) 83 GO 84 85 Create Table ordersHistory 86 ( 87 orderID int not null primary key, 88 customerID int not null, 89 customerNM char(20), 90 orderdate datetime 91 ) 92 93 ON ps_orderID(orderID) 94 95 *****************************************************************/ 96 97 USE test1 98 GO 99 Insert into dbo.orders values (1,1,‘王星‘,GETDATE()) 100 Insert into dbo.orders values (2,2,‘张星‘,GETDATE()) 101 Insert into dbo.orders values (3,3,‘王五‘,GETDATE()) 102 Insert into dbo.orders values (4,4,‘李四‘,GETDATE()) 103 Insert into dbo.orders values (5,5,‘吴青‘,GETDATE()) 104 Insert into dbo.orders values (6,6,‘王思源‘,GETDATE()) 105 Insert into dbo.orders values (7,7,‘张思武‘,GETDATE()) 106 Insert into dbo.orders values (8,8,‘陈德娥‘,GETDATE()) 107 Insert into dbo.orders values (9,9,‘赵倩‘,GETDATE()) 108 Insert into dbo.orders values (10,10,‘王青‘,GETDATE()) 109 Insert into dbo.orders values (11,11,‘石顺‘,GETDATE()) 110 Insert into dbo.orders values (12,12,‘张峰‘,GETDATE()) 111 Insert into dbo.orders values (13,13,‘文雅‘,GETDATE()) 112 Insert into dbo.orders values (14,14,‘黄忠‘,GETDATE()) 113 Insert into dbo.orders values (15,15,‘无碍‘,GETDATE()) 114 Insert into dbo.orders values (16,16,‘黄爱生‘,GETDATE()) 115 Insert into dbo.orders values (17,17,‘弑天‘,GETDATE()) 116 Insert into dbo.orders values (18,18,‘流苏‘,GETDATE()) 117 Insert into dbo.orders values (19,19,‘蛋黄‘,GETDATE()) 118 Insert into dbo.orders values (20,20,‘萨芬‘,GETDATE()) 119 Insert into dbo.orders values (21,21,‘艾丝凡‘,GETDATE()) 120 Insert into dbo.orders values (22,22,‘暗示法‘,GETDATE()) 121 Insert into dbo.orders values (23,24,‘色纺‘,GETDATE()) 122 Insert into dbo.orders values (25,25,‘个人‘,GETDATE())
查询分区表的数据
use test1 go select * from orders where $partition.pf_orderID(OrderID) = 3
将orders表分区1中的数据归档到ordersHistory中
use test1 go alter table orders switch partition 1 to ordersHistory partition 1
添加分区
1 use test1 2 go 3 /****************************** 4 alter database test1 add filegroup FG4 5 6 alter database test1 add file( 7 name =N‘file4‘, 8 filename = N‘d:\file4.ndf‘, 9 size = 3MB, 10 maxsize = 100MB, 11 filegrowth = 10% 12 ) 13 TO filegroup FG4 14 GO 15 16 ***************/ 17 18 alter partition scheme ps_orderID next used FG4 19 alter partition function pf_orderID() split range(22)
删除分区,将2个分区合成几个即可,如将(0-10)与(10,20)将(0-10)的分区删除,只需要删除10这个临界点
1 use test1 2 go 3 4 alter partition function pf_orderID() merge range (10)
分区函数
1 use test1 2 go 3 --------------查看分区数据--------------------- 4 select * from sys.partition_functions --查看分区函数 5 select * from sys.partition_range_values --查看分区临界点 6 select * from sys.partition_schemes --查看分区方案
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。