SQLServer 2005 海量数据解决方案(分区表)与对已存在的表进行分
这两天一直在研究2005 中如何对表进行分区,但是参考了多数资料都是说新建表后再将原表中数据插入到新表中,这样有些不方便. ? ? 最后找到了在已有表上做分区表的方法.见代码. ??? 我们有个表现在已经到了1千万的数据,之前仅仅是优化索引和索引试图来在真实的环境中查看到底sql2005单表能负载多大的量。 ---select * from t200705 --1.先根据表数据的量大小,来拆分每一个分区,保证每一个分区表的记录尽量在250w条记录左右. --分区函数 ? CREATE PARTITION FUNCTION MonthDateRange(datetime) --3.我们需要在服务器上建立出单独的文件(涉及到的朋友可能知道,我们如果把文件分布在不同的磁盘上,可以最大限度的提高磁头的读写能力;另:这里微软建议数据库服务器最好--作Raid0 + Raid1).我由于是做测试,所以就放在了一个硬盘上了. ALTER DATABASE T1 --4.创建关联 分区架构 CREATE PARTITION SCHEME MonthDateRangeScheme? --切换到分区表
ALTER TABLE t200705
ADD
PRIMARY KEY NONCLUSTERED(rownumber,starttime)
ON MonthDateRangeScheme(starttime)
GO
/*
-- 切换到分区表 ALTER TABLE dbo.t200705 DROP CONSTRAINT rownumber,starttimeWITH( MOVE TO PS_MonthDateRangeScheme(starttime) ) */ ---如果大家希望查询此表中的相关数据,可以使用如下语句 SELECT *,$PARTITION.MonthDateRange(starttime) AS T2007 FROM t200705 where starttime>'20070603' ---7删除 -- 删除测试 --DROP TABLE dbo.t200705 --DROP PARTITION SCHEME MonthDateRangeScheme ---DROP PARTITION FUNCTION MonthDateRange (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |