SSD在SQLServer中的应用

WBOY
发布: 2016-06-07 15:27:20
原创
1595 人浏览过

一. 首先,回顾一下 SSD 的读写特性 (1)有限次数写; (2)随机读性能最好; (3)顺序读性能好; (4)顺序写性能差; (5)随机写性能最差。 从存储上来说,SQLServer 不同的内容有其特有的个性。 下面就TempDB,数据,索引,事务日志,分别列举他们各自

 

 

一. 首先,回顾一下 SSD 的读写特性

 

       (1)有限次数写;
       (2)随机读性能最好;
       (3)顺序读性能好;
       (4)顺序写性能差;
       (5)随机写性能最差。
从存储上来说,SQLServer 不同的内容有其特有的个性。     


下面就TempDB,数据,索引,事务日志,分别列举他们各自的特点,分析他们是否适合及如何利用快速存取介质。

 

二. SQLServer 数据库如何使用快速存储

1. TempDB

特点:

(1)大量顺序写,随机写;
分析:TempDB 大量写操作的特性,可能会让SSD很快的被磨损;对可擦写次数有限的SSD来说,确实不是个好消息;
(2)如果能提升TempDB的读写性能,可以给整个数据库的运行效率带来很大的提升;
分析:TempDB 需要使用高速存储介质。
(3)不需要保证 TempDB 数据的安全,数据在重启后会自动清除;
分析:由于不用考虑其数据的固化及安全,因此,可以选择一些快速读写但无使用次数限制的介质;
            例如:RamDisk(用内存模拟磁盘)

策略:

 

(1)尽量考虑其他高速存储介质,例如,内存,借助RamDisk技术;
(2)如果用SSD,建议:
         a)单独使用一块SSD存放。即便该盘出故障,换块盘,或修改保存地址,重启SQLS,就可以再提供服务;       
         b)TempDB 分文件,尽量利用SSD的并发特性
                 CPU总核数                  CPU总核数 >= 8 文件数等于8;

2. 数据,索引

特点:

 

(1)顺序写
(2)随机读
分析:可以利用到SSD的优点

策略:

 

(1)建议使用SSD;
(2)使用文件组,将数据和索引分开;
(3)创建多个文件组,数据做分区(同样是想充分利用SSD的IO并发)

 

3. 事务日志      

特点:

 

(1)离散的连续写;
(2)一个数据库只能有一个日志文件;
(3)安全性要求高;
分析:虽然是离散的连续写,但由于有buffer的存在,其实就是连续写。连续写式HDD的强项;

 

策略:

 

(1)事务日志建议使用HDD
(2)如果事务日志的写操作有瓶颈,则考虑使用SSD,但必须确保:
        a)使用企业级的SSD,做RAID10;
        b)选择有写缓存且有断电保护电路的SSD;

三. 推荐的使用架构

数据库中保存的毕竟都是重要的信息,有人会担心,万一哪天人品不好,SSD 数据盘真的出故障了,怎么办?

建议,使用读写分离的方式。在读库中使用SSD。这样既能保证数据安全,又能有效利用SSD的高效离散读特性。

 

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!