SQL Server 2008将普通表转换成分区表
标签:
itsqlserver分区表 |
分类: 学习资料 |
最近项目中,某个表数据量爆发时增长,单表已700w+,读写性能急剧下降,所以考虑加入分区表以解燃眉之急,后续还是要分表分库,当然这是后话。下面简要说一下将普通表转为分区表的步骤。
一、创建文件组
打开SQL Server Management
Studio,在相关数据库项右键属性,进入数据库属性页,选择文件组选项http://s3/mw690/001kMp6qzy7cWkbaKFc12&690Server 2008将普通表转换成分区表" TITLE="SQL Server 2008将普通表转换成分区表" />
二、创建文件
数据库属性页,选择文件选项
,添加文件 。
添加文件时,需要选择上一步添加的对应文件组
http://s4/mw690/001kMp6qzy7cWkwoKTp63&690Server 2008将普通表转换成分区表" TITLE="SQL Server 2008将普通表转换成分区表" />
三、删除普通表中的聚集索引,因为分区表是以某个字段为分区条件,所以,除了这个字段以外不能再存在其他聚集索引的。要想将普通表转换成分区表,就必须要先删除原表中聚集索引,然后再创建一个新的聚集索引,以此聚集索引中创建分区方案
-
--删掉主键
-
ALTER
TABLE testTab DROP constraint PK_testTab -
--创建主键,但不设为聚集索引
-
ALTER
TABLE testTab ADD CONSTRAINT PK_testTab PRIMARY KEY NONCLUSTERED -
(
-
[ID] ASC -
)
ON [PRIMARY]
四、创建一个分区函数
- --创建一个分区函数
-
CREATE
PARTITION FUNCTION part_month_func_range_test(datetime) -
AS
RANGE RIGHT FOR VALUES ( - '2017-7-1 00:00:00',
- '2017-8-1 00:00:00',
- '2017-8-1 00:00:00',
- '2017-9-1 00:00:00',
- '2017-10-1 00:00:00',
- '2017-11-1 00:00:00',
-
)
五、创建一个分区方案
-
CREATE
PARTITION SCHEME partschSale -
AS
PARTITION part_month_func_range_test -
TO
( -
FC201706, -
FC201707, -
FC201708, -
FC201709, -
FC201710, -
FC201711, -
FC201712 -
)
注意:方案中文件组比函数中要多一个
六、按分区方案创建聚集索引
-
--创建一个新的聚集索引,在该聚集索引中使用分区方案
-
CREATE
CLUSTERED INDEX CT_testTab ON Sale([inDate]) -
ON
part_month_func_range_test([inDate])
为表创建了一个使用分区方案的聚集索引之后,该表就变成了一个分区表了。

加载中…