当前位置:Gxlcms > 数据库问题 > SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?

SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?

时间:2021-07-01 10:21:17 帮助过:21人阅读

 
  1. CREATE PARTITION FUNCTION partfunSale (datetime)  
  2. 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将已分区的数据放在哪个文件组中。分区方案的代码如下所示:

 

[c-sharp] view plain copy  
  1. CREATE PARTITION SCHEME partschSale  
  2. AS PARTITION partfunSale  
  3. TO (  
  4.     Sale2009,  
  5.     Sale2010,  
  6.     Sale2011,  
  7.     Sale2012,  
  8.     Sale2013)  

 

 

    其中:

    1、CREATE PARTITION SCHEME意思是创建一个分区方案。

    2、partschSale为分区方案名称。

    3、AS PARTITION partfunSale说明该分区方案所使用的数据划分条件(也就是所使用的分区函数)为partfunSale。

    4、TO后面的内容是指partfunSale分区函数划分出来的数据对应存放的文件组。

 

    到此为止,分区函数和分区方案就创建完毕了。创建后的分区函数和分区方案在数据库的“存储”中可以看到,如下图所示:

 

技术分享

 

    最后,创建分区表,创建方式和创建普遍表类似,如下所示:

 

[c-sharp] view plain copy  
  1. CREATE TABLE Sale(  
  2.     [Id] [int] IDENTITY(1,1) NOT NULL,  
  3.     [Name] [varchar](16) NOT NULL,  
  4.     [SaleTime][datetime] NOT NULL  
  5. ) ON partschSale([SaleTime])  

 

 

    其中:

    1、CREATE TABLE 意思是创建一个数据表。

    2、Sale为数据表名。

    3、()中为表中的字段,这里的内容和创建普通数据表没有什么区别,惟一需要注意的是不能再创建聚集索引了。道理很简单,聚集索引可以将记录在物理上顺序存储的,而分区表是将数据分别存储在不同的表中,这两个概念是冲突的,所以,在创建分区表的时候就不能再创建聚集索引了。

    4、ON partschSale()说明使用名为partschSale的分区方案。

    5、partschSale()括号中为用于分区条件的字段是SaleTime。

 

    OK,一个物理上是分离的,逻辑上是一体的分区表就创建完毕了。查看该表的属性,可以看到该表已经属于分区表了。

 

技术分享

 

原创不容易,转载请注明出处。http://blog.csdn.net/smallfools/archive/2009/12/03/4930810.aspx

SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?

标签:独立   class   文件组   targe   增加   value   物理   告诉   title   

人气教程排行