那么分区函数的代码如下所示:
view plain copy to clipboard print ?
-
CREATE PARTITION FUNCTION partfunSale (datetime)
-
AS RANGE RIGHT FOR VALUES (‘20100101’,‘20110101’,‘20120101’,‘20130101’)
其中:
1、CREATE PARTITION FUNCTION意思是创建一个分区函数。
2、partfunSale为分区函数名称。
3、AS RANGE RIGHT为设置分区范围的方式为Right,也就是右置方式。
4、FOR VALUES (‘20100101’,‘20110101’,‘20120101’,‘20130101’)为按这几个值来分区。
这里需要说明的一下,在Values中,‘20100101’、‘20110101’、‘20120101’、‘20130101’,这些都是分区的条件。“ 20100101”代表2010年1月1日,在小于这个值的记录,都会分成一个小表中,如表1;而小于或等于’20100101’并且小于’20110101’的值,会放在另一个表中,如表2。以此类推,到最后,所有大小或等于’20130101’的值会放在另一个表中,如表5。
也许有人会问,为什么值“ 20100101”会放在表2中,而不是表1中呢?这是由AS RANGE RIGHT中的RIGHT所决定的,RIGHT的意思是将等于这个值的数据放在右边的那个表里,也就是表2中。如果您的SQL语句中使用的是Left而不是RIGHT,那么就会放在左边的表中,也就是表1中。
第四、创建一个分区方案。分区方案的作用是将分区函数生成的分区映射到文件组中去。分区函数的作用是告诉SQL Server,如何将数据进行分区,而分区方案的作用则是告诉SQL Server将已分区的数据放在哪个文件组中。分区方案的代码如下所示:
view plain copy to clipboard print ?
-
CREATE PARTITION SCHEME partschSale
-
AS PARTITION partfunSale
-
TO (
-
Sale2009,
-
Sale2010,
-
Sale2011,
-
Sale2012,
-
Sale2013)
其中:
1、CREATE PARTITION SCHEME意思是创建一个分区方案。
2、partschSale为分区方案名称。
3、AS PARTITION partfunSale说明该分区方案所使用的数据划分条件(也就是所使用的分区函数)为partfunSale。
4、TO后面的内容是指partfunSale分区函数划分出来的数据对应存放的文件组。
到此为止,分区函数和分区方案就创建完毕了。创建后的分区函数和分区方案在数据库的“存储”中可以看到,如下图所示:
最后,创建分区表,创建方式和创建普遍表类似,如下所示:
view plain copy to clipboard print ?
-
CREATE TABLE Sale(
-
[Id] [int] IDENTITY(1,1) NOT NULL,
-
[Name] [varchar](16) NOT NULL,
-
[SaleTime][datetime] NOT NULL
-
) ON partschSale([SaleTime])
其中:
1、CREATE TABLE 意思是创建一个数据表。
2、Sale为数据表名。
3、()中为表中的字段,这里的内容和创建普通数据表没有什么区别,惟一需要注意的是不能再创建聚集索引了。道理很简单,聚集索引可以将记录在物理上顺序存储的,而分区表是将数据分别存储在不同的表中,这两个概念是冲突的,所以,在创建分区表的时候就不能再创建聚集索引了。
4、ON partschSale()说明使用名为partschSale的分区方案。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!