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

 

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

(⊙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 BigValues on 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

我们插点数据看看吧:

View Code

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑点燃希望

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值