sql2005分区表示例

SQL2005分区表可以在一定程度上解决海量数据的性能问题,比如可以规避高访问量数据区段的io竞争,可以缩小你查询数据范围的索引大小。 msdn参考

http://msdn.microsoft.com/zh-cn/library/ms345146.aspx 一个完整的脚本示例

--drop database dbPartitionTest

--测试数据库  

create database dbPartitionTest

go



use 

dbPartitionTest

go



--增加分组

alter database dbPartitionTest ADD FILEGROUP P200801

alter database dbPartitionTest ADD FILEGROUP P200802

alter database dbPartitionTest ADD FILEGROUP P200803

go

--分区函数

CREATE PARTITION FUNCTION part_Year(datetime)

 AS RANGE LEFT FOR VALUES 

( 

'20080131 23:59:59.997','20080229 23:59:59.997','20080331 23:59:59.997'

) 

go

--增加文件组

ALTER DATABASE dbPartitionTest ADD FILE (NAME = N'P200801',FILENAME = N'c:/tb_P200801.ndf',SIZE = 1MB,MAXSIZE = 500MB,FILEGROWTH = 1MB)TO FILEGROUP P200801

ALTER DATABASE dbPartitionTest ADD FILE (NAME = N'P200802',FILENAME = N'c:/tb_P200802.ndf',SIZE = 1MB,MAXSIZE = 500MB,FILEGROWTH = 1MB)TO FILEGROUP P200802

ALTER DATABASE dbPartitionTest ADD FILE (NAME = N'P200803',FILENAME = N'c:/tb_P200803.ndf',SIZE = 1MB,MAXSIZE = 500MB,FILEGROWTH = 1MB)TO FILEGROUP P200803

go

--分区架构

CREATE PARTITION SCHEME part_YearScheme  AS PARTITION part_Year   TO (P200801,P200802,P200803,[PRIMARY])

go



CREATE TABLE [dbo].t_part  

(name varchar(100) default newid(),date datetime NOT NULL)

ON part_YearScheme (date)

go



--添加测试数据,每天1条

declare @date datetime

set @date='2007-12-31'

while @date<='2008-04-01'

begin

    insert into t_part(date)values(@date)

    set @date=@date+1

end

go

--查询数据分布在哪些分区

select $partition.part_Year(date) as 分区编号,* from t_part  order by date  

--查询数据库文件

go

sp_helpfile 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值