整理了网络上一些资料,内容主要是分区函数,分区表,分区索引以及表分区的用
-一般情况下,我们建立数据库表时,表数据都存放在一个文件里。但是如果是分区表的话,表数据-就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理
--分区函数,将数据映射到一组分区上。
create partition function PartFuncForExample(Datetime)
as Range Right for Values('20000101','20010101','20020101','20030101')
--分区方案,指定分区对应的文件组,分区函数必须关联分区方案才能有效
Create Partition Scheme PartSchForExample
As Partition PartFuncForExample
to([PRIMARY],[1],[2],[3],[4] )
--分区表
Create Table PartitionTable(
[ID] [int] Identity(1,1) not null,
[Name] [nvarchar](50) not null,
[LoginDate] [DateTime] not null
) On PartSchForExample([LoginDate])
--分区索引,可以避免多个cpu操作多个磁盘时产生的冲突。
create clustered index IXC_PartitionTable_LoginDate on dbo.PartitionTable(LoginDate)
on PartSchForExample(LoginDate)
对表进行分区在多种场景下都需要被用到.通常来说,使用表分区最主要是用于:
存档,比如将销售记录中1年前的数据分到一个专门存档的服务器中
便于管理,比如把一个大表分成若干个小表,则备份和恢复的时候不再需要备份整个表,可以单独备份分区
提高可用性,当一个分区跪了以后,只有一个分区不可用,其它分区不受影响
提高性能,这个往往是大多数人分区的目的,把一个表分布到不同的硬盘或其他存储介质中,会大大提升查询的速度