SQLServer 2005 海量数据解决方案(分区表)与对已存在的表进行分区

SQLServer 2005 海量数据解决方案(分区表)与对已存在的表进行分区,第1张

概述这两天一直在研究2005 中如何对表进行分区,但是参考了多数资料都是说新建表后再将原表中数据插入到新表中,这样有些不方便.     最后找到了在已有表上做分区表的方法.见代码.     我们有个表现在已经到了1千万的数据,之前仅仅是优化索引和索引试图来在真实的环境中查看到底sql2005单表能负载多大的量。      最后得出结论,在我们公司现有的硬件条件下,sql2005中,单表的量最多不能超过

这两天一直在研究2005 中如何对表进行分区,但是参考了多数资料都是说新建表后再将原表中数据插入到新表中,这样有些不方便.

    最后找到了在已有表上做分区表的方法.见代码.

    我们有个表现在已经到了1千万的数据,之前仅仅是优化索引和索引试图来在真实的环境中查看到底sql2005单表能负载多大的量。
     最后得出结论,在我们公司现有的硬件条件下,sql2005中,单表的量最多不能超过250w数据。(这个数据会根据硬件的不同而会有所不同.)

---select * from t200705

--1.先根据表数据的量大小,来拆分每一个分区,保证每一个分区表的记录尽量在250w条记录左右.

--分区函数

 

CREATE PARTITION FUNCTION MonthDaterange(datetime)
 AS RANGE left FOR VALUES 

'20070131 23:59:59.997',
'20070531 23:59:59.997', 
'20071231 23:59:59.997'


--2然后我们需要添加相应的文件组 .我使用的是主文件组.
ALTER DATABASE T1 ADD fileGROUP [PRIMARY]
ALTER DATABASE T1 ADD fileGROUP [PRIMARY]
ALTER DATABASE T1 ADD fileGROUP [PRIMARY]

--3.我们需要在服务器上建立出单独的文件(涉及到的朋友可能知道,我们如果把文件分布在不同的磁盘上,可以最大限度的提高磁头的读写能力;另:这里微软建议数据库服务器最好--作RaID0 + RaID1).我由于是做测试,所以就放在了一个硬盘上了.

ALTER DATABASE T1
ADD file 
(name = N'VIEw200701',filename = N'D:"VIEw200701.ndf',SIZE = 5MB,MAXSIZE = 100MB,fileGROWTH = 5MB)
TO fileGROUP [PRIMARY]

ALTER DATABASE T1
ADD file 
(name = N'VIEw200702',filename = N'D:"VIEw200702.ndf',fileGROWTH = 5MB)
TO fileGROUP [PRIMARY]

ALTER DATABASE T1
ADD file 
(name = N'VIEw200703',filename = N'D:"VIEw200703.ndf',fileGROWTH = 5MB)
TO fileGROUP [PRIMARY]

--4.创建关联

分区架构 CREATE PARTITION SCHEME MonthDaterangeScheme 
AS
PARTITION MonthDaterange 
ALL TO ([PRIMARY])

---5.创建表和索引(我这里只列出如何创建表)
---
/*5.
CREATE table 表
{

}
ON MonthDaterangeScheme (日期列)
GO
*/
--6. --对已经存在的表进行分区设置

--切换到分区表ALTER table t200705ADDPRIMARY KEY NONCLUSTERED(rownumber,starttime)ON MonthDaterangeScheme(starttime)GO /*
-- 切换到分区表ALTER table dbo.t200705DROP 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

总结

以上是内存溢出为你收集整理的SQLServer 2005 海量数据解决方案(分区表)与对已存在的表进行分区全部内容,希望文章能够帮你解决SQLServer 2005 海量数据解决方案(分区表)与对已存在的表进行分区所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1176952.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存