查看文章 |
SQL 2005 表分区 个人实际操作
2008年01月23日 星期三 上午 9:51
/* 本文使对现有的数据库中新建一个表进行分区.暂未发现如何对一个已有数据 的表进行分区处理的资料.本文事例仅为本人测试用.其中有很多未考虑之处 和错误,还请大家赐教. 转载请保留此信息 来自 */ --创建文件组 /* 为数据库[Mydb]添加4个文件组 */ ALTER DATABASE Mydb ADD FILEGROUP [MydbSF1] ALTER DATABASE Mydb ADD FILE (NAME ='MydbSF1', FILENAME = 'D:\db\fabuTb\1\MydbSF1.ndf', FILEGROWTH=1, MAXSIZE = UNLIMITED )TO FILEGROUP ALTER DATABASE Mydb ADD FILE (NAME = N'MydbSF2', FILENAME = 'D:\db\fabuTb\2\MydbSF2.ndf', FILEGROWTH=1, MAXSIZE = UNLIMITED) TO FILEGROUP ALTER DATABASE Mydb ADD FILE (NAME = N'MydbSF3', FILENAME = N'D:\db\fabuTb\3\MydbSF3.ndf', FILEGROWTH=1, MAXSIZE = UNLIMITED) TO FILEGROUP ALTER DATABASE Mydb ADD FILE (NAME = N'MydbSF4', FILENAME = N'D:\db\fabuTb\4\MydbSF4.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中的值 是否已经吧不同数据放在不同的分区中了 */ FROM sell 需要注意的在创建分组文件的时候.必须设置自动增长 并且不要最大值设置为不限,否则在插入数据的时候回 出现错误. */ |
最近读者:

