上次说了其他的解决方案(

汇总篇:

第一次引入文件组的概念:

上次说了其他的解决方案(),就是没有说水平分库,这次好好说下。

 

上次共享的第一份大数据,这次正好来演示一下水平分库

1.模拟部分数据

亚搏app官方网站 1

2.创建索引后,发现可以根据日期来分组

亚搏app官方网站 2

按数据量大致分一下

亚搏app官方网站 3

www.yabovip4.com,步入正轨


亚搏app官方网站,GUI方法:

3.0创建文件组

亚搏app官方网站 4

添加文件到文件组

亚搏app官方网站 5

命令操作:

alter database BigData_TestInfo_PartialData add filegroup Info

亚搏app官方网站 6

alter database BigData_TestInfo_PartialData add
file(name=N’TestInfo2006′,filename=N’G:\SQLData\BigData_TestInfo2006.ndf’)
to filegroup Info

注意:BigData_TestInfo2006.ndf是数据库自己创建的,不需要自己手动创建(有些同志手动创建了,然后报错。。。。呃,有点哭笑不得了)

亚搏app官方网站 7

查询看看:上次说了其他的解决方案(。select * from sys.filegroups

亚搏app官方网站 8

水平分区走起:一般就几步,1.创建分区函数 2.创建分区方案 3.创建分区表

GUI方法

亚搏app官方网站 9

亚搏app官方网站 10

亚搏app官方网站 11

分区函数

亚搏app官方网站 12

分区方案

亚搏app官方网站 13

亚搏app官方网站 14

上次说了其他的解决方案(。上一张图有些人可能不懂,用PPT画张概念图

亚搏app官方网站 15

创建脚本

亚搏app官方网站 16

亚搏app官方网站 17

系统生成脚本:

use [BigData_TestInfo_PartialData]
go

begin transaction

create partition function [CreatedatePartitionFun](varchar(10)) as range right for values(N'2006-01-01', N'2007-01-01', N'2009-01-01', N'2012-01-01')

create partition scheme [CreatedatePartitionScheme] as partition [CreatedatePartitionFun] TO ([Info], [Info], [Info], [Info], [primary])

alter table [dbo].[Info] drop constraint [PK__Info__3214EC07B2FE10C8]

alter table [dbo].[Info] add primary key nonclustered 
(
 [Id] asc
)with (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]


set ansi_padding on

create clustered index [ClusteredIndex_on_CreatedatePartitionScheme_636193166313125124] on [dbo].[Info]
(
 [CreateDate]
)with (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [CreatedatePartitionScheme]([CreateDate])


drop index [ClusteredIndex_on_CreatedatePartitionScheme_636193166313125124] on [dbo].[Info]

commit transaction
go

 

命令方式创建(根据上面生成的命令逆推)

创建分区函数和架构(方案)

create partition function CreatedatePartitionFun(varchar(10)) as range
right for values(N’2006-01-01′, N’2007-01-01′, N’2009-01-01′,
N’2012-01-01′)

亚搏app官方网站 18

create partition scheme CreatedatePartitionScheme as partition
[CreatedatePartitionFun]上次说了其他的解决方案(。 TO ([Info]上次说了其他的解决方案(。, [Info], [Info], [Info],
[primary])

 

创建分区表

尚未创建表的情况

亚搏app官方网站 19

已经创建了表(基本上都是这种情况)

主要就两步,把主键变为非聚集索引+创建分区聚集索引

亚搏app官方网站 20

alter table Info drop constraint PK__Info__3214EC064B338648

alter table Info add constraint PK_Info_Id primary key nonclustered (Id asc)

亚搏app官方网站 21

亚搏app官方网站 22

create clustered index IX_Info_CreateDate on Info(CreateDate) on
CreatedatePartitionScheme(CreateDate)

亚搏app官方网站 23

 

测试:基本上是均匀分散在各个文件中,生产环境的时候可以把这些文件放各个磁盘

亚搏app官方网站 24

参考文章:

http://www.cnblogs.com/lykbk/p/erererert343243434388773437878.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注