码迷,mamicode.com
首页 > 数据库 > 详细

02.SQLServer性能优化之---水平分库扩展

时间:2017-06-28 18:52:16      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:val   data   html   pos   lin   use   mit   var   led   

汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql

第一次引入文件组的概念:http://www.cnblogs.com/dunitian/p/5276431.html

上次说了其他的解决方案(http://www.cnblogs.com/dunitian/p/6041745.html),就是没有说水平分库,这次好好说下。

 

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

1.模拟部分数据

技术分享

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

技术分享

按数据量大致分一下

技术分享

步入正轨

---------------------------------------------------------------------

GUI方法:

3.0创建文件组

技术分享

添加文件到文件组

技术分享

命令操作:

alter database BigData_TestInfo_PartialData add filegroup Info

技术分享

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

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

技术分享

查询看看:select * from sys.filegroups

技术分享

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

GUI方法

技术分享

技术分享

技术分享

分区函数

技术分享

分区方案

技术分享

技术分享

上一张图有些人可能不懂,用PPT画张概念图

技术分享

创建脚本

技术分享

技术分享

系统生成脚本:

 

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

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

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 Info drop constraint PK__Info__3214EC064B338648

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

技术分享

技术分享

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

技术分享

 

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

技术分享

参考文章:

http://www.cnblogs.com/gaizai/p/3582024.html

http://www.cnblogs.com/lyhabc/p/3480917.html

http://www.cnblogs.com/libingql/p/4087598.html

http://www.cnblogs.com/CareySon/p/3252670.html

http://database.51cto.com/art/201009/225448.htm

http://www.cnblogs.com/knowledgesea/p/3696912.html

http://www.cnblogs.com/CareySon/archive/2011/12/30/2307766.html

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

02.SQLServer性能优化之---水平分库扩展

标签:val   data   html   pos   lin   use   mit   var   led   

原文地址:http://www.cnblogs.com/firstdream/p/7090576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!