SQLServer 2008分区表练习1——基本语句及含义
最近在尝试表的分区,做了一些总结,有错误还请指出。
常用sql语句
1. 分区组
建立分区组
alter database [数据库名] add filegroup [文件组名];
(向某一个数据库添加一个文件组)
删除分区组
alter database [数据库名] remove filegroup [文件组名];
(删除某一个数据库中的一个文件组)
注意:只有空的文件组才能用上面的语句直接删除,包含文件的文件组,删除文件组之前要先删除所含文件
2.分区文件
为分区组指定分区文件
alter database [数据库名]
add file( NAME='文件名',filename='创建文件的路径',size=文件大小) to filegroup[文件组名]
/*向某一个数据库的某一个文件组中添加一个文件,文件名为“FG1_data”,文件路径为“c:\safenet\FG1_data.ndf”,文件大小为10MB*/
alter database Product
add file( NAME='FG1_data',filename='c:\safenet\FG3_data.ndf',size=10MB) to filegroup[FG1];
注意:文件路径“'c:\safenet”是一个已经存在的文件夹
删除分区文件
alter database [数据库名] remove file [文件名];
/*删除某一个数据库下的一个分区文件*/
3.分区函数
建立分区函数
Create partition function
函数名(分区字段类型)as
range left
for values('节点1','节点2');
/*left为包含左边界,right为包含右边界*/
Create partition function
Part_mediasec_func(nvarchar(30))as
range left
for values('2019-01-09 23:59:59','2019-01-10 23:59:59');
删除分区函数
drop partition function 函数名
4.分区方案
建立分区方案
create partition scheme <分区方案名称> as partition <分区函数名称> [all]to (文件组名称1,....)
//将分区函数和文件组进行关联
删除分区方案
drop partition scheme <分区方案名称>
5.分区表
创建分区表
create table <表名> (
<列定义>
)on<分区方案名>(分区列名)
//如果在表中创建主键或唯一索引,则分区依据列必须为该列
5.分区索引
创建分区索引
create <索引分类> index <索引名称>
on <表名>(列名)
on <分区方案名>(分区依据列名)
//如果在表中创建主键或唯一索引,则分区依据列必须为该列
5.分区拆分与合并
分区拆分
alter partition function <分区函数名>()
split range(N'新增的分区临界值')
//在拆分前要为函数分配新的分区文件,用来装新的分区内容
alter partition function sPartitionFun()
split range(N'2019-01-10 23:59:59')
合并分区
alter partition function <分区函数名>()
merge range(N'删除的分区临界值')
//减少一个临界点,即合并了两个分区
alter partition function sPartitionFun()
merge range(N'2019-01-09 23:59:59')
6.建立分区索引
create <索引分类> index <索引名称>
on <表名>(列名)
on <分区方案名>(分区依据列名)
//分区表可以不建立分区索引,也就是说表分区,但是索引不分区