sql2005分区表示例
来源:优易学  2011-12-31 15:17:21   【优易学:中国教育考试门户网】   资料下载   IT书店
  SQL2005分区表可以在一定程度上解决海量数据的性能问题,比如可以规避高访问量数据区段的io竞争,可以缩小你查询数据范围的索引大小。
  --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-0’
  1 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

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训