日期:2014-05-18 浏览次数:20566 次
--分区函数 CREATE PARTITION FUNCTION [myPF] (datetime) AS RANGE RIGHT FOR VALUES ('20080101', '20090101', '20100101', '20110101', '20120101', '20130101', '20140101'); --分区方案 CREATE PARTITION SCHEME myPS AS PARTITION myPF TO (fg1, fg2, fg3, fg4, fg5, fg6, fg7, fg8); --创建表 CREATE TABLE PriceDetail ( DDATE DATETIME , col1 int , col2 char(10) ... ) ON myPS (DDATE) ; GO
------解决方案--------------------
仅供楼主参考:
第一步:创建文件组,用于存储表分区的数据文件。
第二步:创建一个分区函数。为每个分区确定边界。特别注意,在指定分区函数的时候,只能按单个值分区,也就是分区只能按照一个统一的条件。
RANGE RIGHT:分区所依据的值所在行在边界右边的分区。
RANGE LEFT:分区所依据的值所在行在边界左边的分区。
例:
CREATE PARTITION FUNCTION YearFunction(orderdate)
AS RANGE RIGHT FOR VALUES ('2006-01-01','2007-01-01','2008-01-01')
上面的代码中使用了RANGE RIGHT选项,表示按日期分4组,第一组为NULL值到'2005-12-31',第二组为'2006-01-01'到'2006-12-31',第三组为'2007-01-01'到'2007-12-31',第四组为'2008-01-01'值INFITITY。也就是将'2006-01-01'所在行放到第二组,将'2007-01-01'放到第三组,将'2008-01-01'放到第四组。
如果选择了RANGE LEFT选项,也就是将'2006-01-01'所在行放到第一组,将'2007-01-01'放到第二组,将'2008-01-01'放到第三组。
第三步:创建分区方案。分区方案用于确定分区的物理存放位置。在定义分区方案时,指定的文件组数必须与分区函数中定义的分区数相同。
例:
CREATE PARTITION SCHEME YearScheme
AS PARTITION YearFunction
TO (文件组1,文件组2,文件组3,文件组4)
一共4个文件组,对应4个分区表,每个文件组放一张分区表。
如果想将所有分区都存储在一个文件组中,有两个选项:
1. 对每个分区重复使用同一个文件组名;
2. 对单个文件组使用ALL TO选项,例如ALL TO([PRIMARY])。
也可以在最后一个文件组指定一个额外的文件组,这个文件组会被标记为“下一”文件组,可在创建另一个分区的时候使用。
第四步:创建实际分区表并将数据从原表中移至分区表中。
删除时,按照分区表、分区方案、分区函数的顺序执行:
DROP TABLE 分区表
DROP PARTITION SCHEME YearScheme
DROP PARTITION FUNCTION YearFunction