详细讲解SQL Server 2005的表分区操作

ZDNet软件频道 时间:2009-12-03 作者: | 赛迪网 我要评论()
本文关键词:Server 服务器 SQL
将分区界限分别放入4个不同的文件组中*然后用下面的那个查询语句查看PF中的值是否已经吧不同数据放在不同的分区中了*注意:创建分组文件的时候.必须设置自动增长,并且不要将最大值设为不限,否则在插入数据的时候会出现错误。

  示例:

  --创建文件组

  /**//*

  为数据库[Mydb]添加4个文件组

  */

  ALTER DATABASE Mydb ADD FILEGROUP [MydbSF1]

  ALTER DATABASE Mydb

  ADD FILE

  (NAME ='MydbSF1',

  FILENAME = 'D:db abuTbMydbSF1.ndf',

  FILEGROWTH=1,

  MAXSIZE = UNLIMITED

  )TO FILEGROUP

  ALTER DATABASE Mydb ADD FILEGROUP [MydbSF2]

  ALTER DATABASE Mydb

  ADD FILE

  (NAME = N'MydbSF2',

  FILENAME = 'D:db abuTbMydbSF2.ndf',

  FILEGROWTH=1,

  MAXSIZE = UNLIMITED)

  TO FILEGROUP

  ALTER DATABASE Mydb ADD FILEGROUP [MydbSF3]

  ALTER DATABASE Mydb

  ADD FILE

  (NAME = N'MydbSF3',

  FILENAME = N'D:db abuTbMydbSF3.ndf',

  FILEGROWTH=1,

  MAXSIZE = UNLIMITED)

  TO FILEGROUP

  ALTER DATABASE Mydb ADD FILEGROUP [MydbSF4]

  ALTER DATABASE Mydb

  ADD FILE

  (NAME = N'MydbSF4',

  FILENAME = N'D:db abuTbMydbSF4.ndf',

  FILEGROWTH=1,

  MAXSIZE = UNLIMITED)

  TO FILEGROUP [MydbSF4]

  /**//*

  添加文件组结束

  */

  --创建分区函数

  /**//*

  以数据库表中ID为参考,此处是以1~10,11~20,

  21~30,31~&做为4个表分区的界限

  */

  CREATE PARTITION FUNCTION pf_Product_Sell (int)

  AS RANGE RIGHT FOR VALUES (10, 20, 30)

  /**//*

  将分区界限分别放入4个不同的文件组中

  */

  CREATE PARTITION SCHEME [ps_Product_SchemeSell] AS PARTITION

  pf_Product_fabu TO (MydbSF1,MydbSF2,MydbSF3,MydbSF4)

  --创建表(在文件组的表分区上)

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER ON

  GO

  CREATE TABLE [dbo].[Sell](

  [id] [int] IDENTITY(1,1) NOT NULL,

  [userid] [int] NOT NULL

  CONSTRAINT [PK_Sell] PRIMARY KEY CLUSTERED

  (

  [id] ASC

  )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,

  ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [ps_Product_SchemeSell]([id])

  )

  /**//*

  接下来即可以插入数据...

  然后用下面的那个查询语句查看PF中的值

  是否已经吧不同数据放在不同的分区中了

  */

  SELECT *, $PARTITION.[pf_Product_Sell](ID) AS PF

  FROM sell

  /**//*

  注意:创建分组文件的时候.必须设置自动增长,

  并且不要将最大值设为不限,否则在插入数据的时候会

  出现错误。

  */

  这样处理的好处是:在像上G级别以上单表的数据操作不必每次操作超大的数据库文件了。而且对I/O物理磁盘瓶颈的减轻十分有效。 (责任编辑:卢兆林)

Server

服务器

SQL


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134