sql2008表分区(草稿)

 

环境:sql server2008

表:tt (16417022条记录)

根据idx(自增)进行表分区。

 

1.先根据表数据的量大小,来拆分每一个分区,保证每一个分区表的记录尽量平均.

--分区函数

CREATE PARTITION FUNCTION IdxRange(bigint)
AS RANGE LEFT FOR VALUES
( 500, 1000,1500) ;

2然后我们需要添加相应的文件组 .我使用的是主文件组.
ALTER DATABASE IP_DATA ADD FILEGROUP [fg500]
ALTER DATABASE IP_DATA ADD FILEGROUP [fg1000]
ALTER DATABASE IP_DATA ADD FILEGROUP [fgbig]

3.我们需要在服务器上建立出单独的文件(涉及到的朋友可能知道,我们如果把文件分布在不同的磁盘上,可以最大限度的提高磁头的读写能力;另:这里微软建议数据库服务器最好--作Raid0 + Raid1).我由于是做测试,所以就放在了一个硬盘上了.

ALTER DATABASE IP_DATA
ADD FILE
(NAME = N'fg500',FILENAME = N'C:\data\fg500.ndf',SIZE = 5MB,MAXSIZE = 1000MB,FILEGROWTH = 5MB)
TO FILEGROUP [fg500];

ALTER DATABASE IP_DATA

ADD FILE
(NAME = N'fg1000',FILENAME = N'C:\data\fg1000.ndf',SIZE = 5MB,MAXSIZE = 1000MB,FILEGROWTH = 5MB)
TO FILEGROUP [fg1000];


ALTER DATABASE IP_DATA
ADD FILE
(NAME = N'fgbig',FILENAME = N'C:\data\fgbig.ndf',SIZE = 5MB,MAXSIZE = 1000MB,FILEGROWTH = 5MB)
TO FILEGROUP [fgbig];

 

4.创建关联

--分区架构

CREATE PARTITION SCHEME IdxRangeScheme
AS
PARTITION IdxRange
ALL TO (fg500,fg1000,fgbig,fgbig);

 

 

--对已经存在的表进行分区设置

--切换到分区表

ALTER TABLE tt
ADD
PRIMARY KEY NONCLUSTERED(idx)
ON IdxRangeScheme(idx)
GO

 

5.创建表和索引(我这里只列出如何创建表)
---

CREATE TABLE 表
{
列信息
}
ON IdxRangeScheme(列)--对应分区字段
GO

转载于:https://www.cnblogs.com/luoshulin/archive/2009/09/04/1573902.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值