1、表分区步骤:首先创建文件组、创建数据文件、创建分区函数、创建分区方案、创建分区表。
2、创建文件组:
--alter database 数据库名称 add filegroup 文件组名称
alter database dbbase add filegroup filegroup1
alter database dbbase add filegroup filegroup2
alter database dbbase add filegroup filegroup3
alter database dbbase add filegroup filegroup4
alter database dbbase add filegroup filegroup5
3、创建数据文件:
--创建数据文件 --alter database 数据库名称 add file --(name=N'文件名称',filename=N'文件路径',size=文件初始,filegrowth=文件自动增量) --to filegroup 文件组名称 alter database mydb add file (name=N'myfile1',filename=N'D:\softwares\sqlserver\root\MSSQL14.MSSQLSERVER\MSSQL\DATA\myfile1.ndf',size=10Mb,filegrowth=5mb) to filegroup filegroup1 alter database mydb add file (name=N'myfile2',filename=N'D:\softwares\sqlserver\root\MSSQL14.MSSQLSERVER\MSSQL\DATA\myfile2.ndf',size=10Mb,filegrowth=5mb) to filegroup filegroup2 alter database mydb add file (name=N'myfile3',filename=N'D:\softwares\sqlserver\root\MSSQL14.MSSQLSERVER\MSSQL\DATA\myfile3.ndf',size=10Mb,filegrowth=5mb) to filegroup filegroup3 alter database mydb add file (name=N'myfile4',filename=N'D:\softwares\sqlserver\root\MSSQL14.MSSQLSERVER\MSSQL\DATA\myfile4.ndf',size=10Mb,filegrowth=5mb) to filegroup filegroup4 alter database mydb add file (name=N'myfile5',filename=N'D:\softwares\sqlserver\root\MSSQL14.MSSQLSERVER\MSSQL\DATA\myfile5.ndf',size=10Mb,filegrowth=5mb) to filegroup filegroup5
4、创建分区函数:
create partition function 分区函数名(<分区列类型>) as range [left/right] for values (每个分区的边界值,....)
上面的left代表左边界,right代表右边界。当 数据库引擎 按升序从左到右排序时,边界值是属于左侧还是右侧(默认为左侧)。换句话说,就是一个为小于等于,另一个为小于。
create partition function myPartitionFun(datetime) as range right for values ('2001-01-01 00:00:00','2010-01-01 00:00:00','2015-01-01 00:00:00','2023-01-01 00:00:00')
5、创建分区方案:
create partition scheme <分区方案名称> as partition <分区函数名称> [all]to (文件组名称,....)
create partition scheme myPartitionSchema as partition myPartitionFun to (filegroup1,filegroup2,filegroup3,filegroup4,filegroup5);
分区函数生成的分区数不能大于分区方案中指定的文件组数量。如果生成的分区数小于文件组的数量,那么多出的文件组,会被标记为下次使用的文件组。 myPartitionFun 指定了4临界值因此会生成5个分区, myPartitionSchema 恰好指定了5个文件组一一对应5个分区。
6、创建分区表
我们已经创建了分区方案了,接下来就是把分区方案应用到数据表上,这就是创建分区表。
create table <表名> ( <列定义> )on<分区方案名>(分区列名)
例如:
create table MyOrder ( id bigint not null identity(1,1), order_num nvarchar(32) not null, order_status int not null, createtime datetime not null, updatetime datetime not null, order_desc nvarchar(500) null ) on myPartitionSchema(id);