SQL SERVER中的分区表
十一月 6, 2009 – 5:03 下午SQL SERVER中的分区表
SQL SERVER中的分区表和postgresql中的分区表创建方法类似。
1,创建PARTITION FUNCTION
1> CREATE PARTITION FUNCTION RangePF1 ( int )
2> AS RANGE FOR VALUES (10, 100, 1000) ;
3> GO
测试分区函数
1> SELECT $PARTITION.RangePF1 (10) ;
2> GO
2,创建PARTITION SCHEME
CREATE PARTITION SCHEME myRangePS1
AS PARTITION myRangePF1
TO (test1fg, test2fg, test3fg, test4fg) ;
GO
将几个分区分别映射到test1fg, test2fg, test3fg, test4fg四个文件组上
3,创建分区表
CREATE TABLE sunwg02 (col1 int, col2 char(10))
ON RangePF1 (col1) ;
GO
这样就创建了一张分区表,可以从sys.partitions中查看相关分区的信息
下面通过查看执行计划看看分区的效果
1> set showplan_text on
2> go
1> select * from sunwg02 where col1=1;
2> go
StmtText
select * from sunwg02 where col1=1;
(1 row affected)
StmtText
|–Table Scan(OBJECT:([shxn].[robit].[sunwg02]),
SEEK:([PtnId1001]=RangePartitionNew(CONVERT_IMPLICIT(int,[@1],0),(0),(10),(100),(1000))),
WHERE:([shxn].[robit].[sunwg02].[col1]=CONVERT_IMPLICIT(int,[@1],0)) ORDERED FORWARD)