转:SQL Server 2005数据库分表实例
2011-08-30 11:20
357 查看
参考网上的资料写的一个数据库分表的实例,记下来,一免下次再费力在网上找资料
use Text
go
建立文件组,
alter database Text add filegroup TextFG1
alter database Text add filegroup TextFG2
alter database Text add filegroup TextFG3
go
在文件组中添加文件,一个文件组可以包含多个文件,每个文件代表的是某一个表的分表。
例如:一个数据库中有两个表需要分表,就可以再每个分组中添加两个分表,分别对应这两个表。
分组最好放在不同的磁盘下,可以充分发挥IO操作速度。
alter database Text add file(name=N'TextDataFile1', filename=N'C:\SQL File Group 1\TextDataFile1.ndf',
size=3072KB, filegrowth=1024KB ) to filegroup TextFG1
alter database Text add file(name=N'TextDataFile2', filename=N'D:\SQL File Group 2\TextDataFile2.ndf',
size=3072kb, filegrowth=1024kb) to filegroup TextFG2
alter database Text add file(name=N'TextDataFile3', filename=N'E:\SQL File Group 3\TextDataFile3.ndf',
size=3072kb, filegrowth=1024kb) to filegroup TextFG3
go
创建分区函数,分区依据后边的时间点,将表分为3个区,分别放在不同的分区表中
create partition function TextPF(datetime) as range right for values('20071230', '20081230')
go
创建分区方案,将分区函数和分组对应起来
create partition scheme TextPS as partition TextPF to (TextFG1, TextFG2, TextFG3)
go
创建表
create table t_Sina_Comment(
comment_id varchar(20) not null,
post_id varchar(20) null,
commentTime datetime not null,
commentContent text null,
blogger_id varchar(20) null
)on TextPS(commentTime)
go
创建聚集索引,创建分区的依据必须为索引。
create clustered index indexofComment on dbo.t_Sina_Comment(comment_id, commentTime)
go
表创建好了之后,就可以导入数据了。
导入的数据根据表中commentTime存放在不同的分区文件中。
实验中录入220多万数据,3个分区文件中分别有60多万,50多万和110多万
通过下边的测试,说明实验室成功的
测试:
select $partition.TextPF(o.commentTime) as partitionNum,
min(commentTime) as minCommentTime,
max(commentTime) as maxCommentTime,
count(*) as rows
from t_Sina_Comment as o
group by $partition.TextPF(o.commentTime)
order by partitionNum
go
select *
from t_Sina_Comment
where commentTime<'2009-02-02' and commentTime>'2008-12-25'
use Text
go
建立文件组,
alter database Text add filegroup TextFG1
alter database Text add filegroup TextFG2
alter database Text add filegroup TextFG3
go
在文件组中添加文件,一个文件组可以包含多个文件,每个文件代表的是某一个表的分表。
例如:一个数据库中有两个表需要分表,就可以再每个分组中添加两个分表,分别对应这两个表。
分组最好放在不同的磁盘下,可以充分发挥IO操作速度。
alter database Text add file(name=N'TextDataFile1', filename=N'C:\SQL File Group 1\TextDataFile1.ndf',
size=3072KB, filegrowth=1024KB ) to filegroup TextFG1
alter database Text add file(name=N'TextDataFile2', filename=N'D:\SQL File Group 2\TextDataFile2.ndf',
size=3072kb, filegrowth=1024kb) to filegroup TextFG2
alter database Text add file(name=N'TextDataFile3', filename=N'E:\SQL File Group 3\TextDataFile3.ndf',
size=3072kb, filegrowth=1024kb) to filegroup TextFG3
go
创建分区函数,分区依据后边的时间点,将表分为3个区,分别放在不同的分区表中
create partition function TextPF(datetime) as range right for values('20071230', '20081230')
go
创建分区方案,将分区函数和分组对应起来
create partition scheme TextPS as partition TextPF to (TextFG1, TextFG2, TextFG3)
go
创建表
create table t_Sina_Comment(
comment_id varchar(20) not null,
post_id varchar(20) null,
commentTime datetime not null,
commentContent text null,
blogger_id varchar(20) null
)on TextPS(commentTime)
go
创建聚集索引,创建分区的依据必须为索引。
create clustered index indexofComment on dbo.t_Sina_Comment(comment_id, commentTime)
go
表创建好了之后,就可以导入数据了。
导入的数据根据表中commentTime存放在不同的分区文件中。
实验中录入220多万数据,3个分区文件中分别有60多万,50多万和110多万
通过下边的测试,说明实验室成功的
测试:
select $partition.TextPF(o.commentTime) as partitionNum,
min(commentTime) as minCommentTime,
max(commentTime) as maxCommentTime,
count(*) as rows
from t_Sina_Comment as o
group by $partition.TextPF(o.commentTime)
order by partitionNum
go
select *
from t_Sina_Comment
where commentTime<'2009-02-02' and commentTime>'2008-12-25'
相关文章推荐
- SQL Server 2005数据库分表实例(转)
- SQL Server 2005数据库分表实例(转)
- SQL Server 2005数据库重装后将原数据库直接附加新数据库实例时遇到的所有权问题
- 尝试的基于 Windows Server 2003 计算机上运行 SQL Server 2005 实例上安装 UDDI 服务数据库组件时可能收到错误信息
- sql server 2005 压缩实例下所有数据库文件及日志文件 语句
- sql server 2005 压缩实例下所有数据库文件及日志文件 语句(转)
- sql server 2005 压缩实例下所有数据库文件及日志文件(转载)作者:Program Life
- sql server 2005 压缩实例下所有数据库文件及日志文件 语句【转】
- 使用JDBC驱动程序访问SQL Server 2005数据库(实例)
- SQL Server 2005 数据库复制实例
- sql server 2005 压缩实例下所有数据库文件及日志文件
- SQL Server 2005数据库引擎下无实例
- Sql Server 2005数据库被标记为“可疑”问题
- 如何在SQL Server 2005中修复损坏的数据库
- Sql Server 2005/2008 删除数据库中所有存储过程
- 使用 SQL SERVER 2005 新增功能--- DDL_DATABASE_LEVEL_EVENTS 数据库级的触发器,创建数据库日志表
- VS 2005中winForm开发(C#)—图片上传到数据库与显示(sql server 2005)
- 安装SQL Server 2005实例环境图解
- SQL Server 2005数据库定期备份和删除历史备份记录
- 在SQL Server 2005数据库中更改数据架构