这两天一直在研究SQL Server 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",SIZE = 5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB)
TO FILEGROUP [PRIMARY]ALTER DATABASE T1
ADD FILE
(NAME = N"View200703",FILENAME = N"D:"View200703.ndf",SIZE = 5MB,MAXSIZE = 100MB,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 t200705where starttime>"20070603"
---7删除-- 删除测试
--DROP TABLE dbo.t200705
--DROP PARTITION SCHEME MonthDateRangeScheme
---DROP PARTITION FUNCTION MonthDateRange关于sql where id in 转换成数据类型 int 时失败SQL Server 2005数据库读写分离相关资讯 SQL Server 2005 sql server分区表 sql2005 分区表
- SQL Server 2005不会再收到安全更 (05月06日)
- SQL Server 2005 即将终止服务 你 (12/21/2015 20:43:42)
- SQL Server 2005 表分区说明 (11/21/2012 09:44:01)
| - SQL Server 2005生命周期将于2016 (04月07日)
- SQL Server 2005数据库读写分离 (11/21/2012 09:52:38)
- MS SQL Server 2005 分区表的使用( (11/21/2012 09:40:32)
|
本文评论 查看全部评论 (0)