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)

Post a Comment