01.SQLServer性能优化之----强大的文件组----分盘存储

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

文章内容皆自己的理解,如有不足之处欢迎指正~谢谢

前天有学弟问逆天:“逆天,有没有一种方式可以让我一个表存到两个数据库文件中,或者说怎么把一个表的数据平摊到其他数据库文件中?”

(⊙o⊙)…,逆天数据库优化不是很强悍,不过类似的情景倒是见过,可以给你一个思路。比如说我们在创建数据库的时候就可以好好利用文件组。

举个例子:

我们一般创建数据库都是这么来的:

create database BigValues
on primary                    --数据库文件,主文件组
(
    name='BigValues_Data', --逻辑名
    size=10mb,                --初始大小
    filegrowth=10%,            --文件增长
    maxsize=1024mb,            --最大值
    filename=N'E:\SQL\BigValues_Data.mdf'--存放路径(包含文件后缀名)
)
log on --日记
(
    name='BigValues_Log',
    size=5mb,
    filegrowth=5%,
    filename=N'E:\SQL\BigValues_log.ldf')

利用文件组就可以这么创建

--创建数据库create database BigValueson primary                    --数据库文件,主文件组(
    name='BigValues_Data', --逻辑名
    size=10mb,                --初始大小
    filegrowth=10%,            --文件增长
    maxsize=1024mb,            --最大值
    filename=N'E:\SQL\BigValues_Data.mdf'--存放路径(包含文件后缀名)),
(
    name='BigValues_Data1',
    size=10mb,
    filegrowth=10%,
    maxsize=1024mb,
    filename=N'F:\Work\SQL\BigValues_Data1.mdf'),
filegroup TestData --TestData文件组(表创建到不同的文件组里面可以分担压力)(
    name='BigValues_Data_Num1',
    size=10mb,
    filegrowth=10%,
    maxsize=1024mb,
    filename=N'E:\SQL\BigValues_Data_Num1.ndf'),
(
    name='BigValues_Data_Num2',
    size=10mb,
    filegrowth=10%,
    maxsize=1024mb,
    filename=N'F:\Work\SQL\BigValues_Data_Num2.ndf')log on --日记(
    name='BigValues_Log1',
    size=5mb,
    filegrowth=5%,
    filename=N'E:\SQL\BigValues_log1.ldf'),
(
    name='BigValues_Log2',
    size=5mb,
    filegrowth=5%,
    filename=N'F:\Work\SQL\BigValues_log2.ldf')go

我们要是想查看文件组的信息就可以执行这个存储过程:(跟上图一起看)

exec sp_helpfilegroup --查看文件组

学弟的疑问就来了,为啥我创建表的时候都是在主文件组里呢?

那么想在指定文件组里创建表怎么搞呢?

看案例:(创建表的时候在最后写上 on 文件组名)

--在指定文件组中创建文件create table Test
(
    Tid int primary key identity,
    Title01 nvarchar(100) default('标题01'),    
    Title02 nvarchar(100) default('标题02'),    
    Title03 nvarchar(100) default('标题03'),    
    DataStatus tinyint default(0) --0~255 size:1字节) on TestData

我们插点数据看看吧:

有没有发现什么?数据平坦了哇(可以想象,如果平摊到多个文件各个盘,那么你的写入或者读写数据的效率是多么的高了~)

下一篇:02.SQLServer性能优化之---牛逼的OSQL----大数据导入 http://www.cnblogs.com/dunitian/p/5276449.html

原文发布于微信公众号 - 我为Net狂(dotNetCrazy)

原文发表时间:2016-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏转载gongluck的CSDN博客

Brpc学习:简单回显服务器/客户端

sudo apt-get install git g++ make libssl-dev sudo apt-get install realpath libgf...

1.8K6
来自专栏Golang语言社区

一个go语言实现的短链接服务

一个go语言实现的短链接服务 首先,博客转移到 wusay.org 了,去年没交费,博客都没了。。。刚刚恢复过来,以前的文章没了,慢慢补吧。 什么是短链接服务 ...

44715
来自专栏Golang

influxdb 简介与实现(一)

InfluxDB是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及执行分析。

2464
来自专栏Jackson0714

sys.dm_db_wait_stats

34012
来自专栏运维小白

10.1 使用w查看系统负载

监控系统状态 w / uptime 命令,查看系统负载 cat /proc/cpuinfo 命令,查看cpu核数——>里面的processor 表示逻辑cpu,...

1749
来自专栏Golang语言社区

一个go语言实现的短链接服务

一个go语言实现的短链接服务 首先,博客转移到 wusay.org 了,去年没交费,博客都没了。。。刚刚恢复过来,以前的文章没了,慢慢补吧。 什么是短链接服务 ...

59310
来自专栏FreeBuf

Kali下常用安全工具中文参数说明(160个)

*本文原创作者:屌丝绅士,属Freebuf原创奖励计划,转载请注明来自FreeBuf 由于篇幅有限,只列举部分,ps:第一次发有什么不对的 还望各位大大指正 n...

8799
来自专栏java一日一条

缓存穿透,缓存击穿,缓存雪崩解决方案分析

设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。

1062
来自专栏文武兼修ing——机器学习与IC设计

基于Python的运动计费管理系统动机技术路线规划实现

动机 小伙伴们最近迷恋上羽毛球,组织了个小群,办了公用的运动卡用于开场,考虑不是每次活动都是全员参与,需要一个计费的系统来计算每个人需要交的费用。商讨后决定采用...

3008
来自专栏技术栈大杂烩

Linux: linux 匿名管道

相信很多在linux平台工作的童鞋, 都很熟悉管道符 '|', 通过它, 我们能够很灵活的将几种不同的命令协同起来完成一件任务.就好像下面的命令:

1792

扫码关注云+社区