SQL Server 2014新特性——Buffer Pool扩展
Buffer Pool扩展
Buffer Pool扩展是buffer pool 和非易失的SSD硬盘做连接。以SSD硬盘的特点来提高随机读性能。
缓冲池扩展优点
SQL Server读以随机读为主,SQL Server IO分为2部分:buffer pool管理方式,和buffer pool。
SQL Server 从磁盘中读入数据,并且存放在buffer pool中以供读取和修改,修改完之后脏数据还是放在buffer pool中,当内存紧张执行lazy write把脏数据写入磁盘,并且释放内存页。要用时又会从磁盘中读取,这样无形中加大了对io的需求。
SQL Server 2014之前解决方法:加内存,减少对IO的需求
SQL Server 2014解决办法:使用buffer pool扩展,加入SSD硬盘,加大工作集,减少对IO的需求。
主要优点:
· 随机 I/O 吞吐量提高
· I/O 滞后时间缩短
· 事务吞吐量提高(减少io等待时间)
· 由于采用更大的混合缓冲池,读取性能提高(SSD随机读写能力强)
· 具有一种可利用现有和将来的低成本内存驱动器的缓存体系结构(因为有SSD,可以减少对IO的投入)
Buffer Pool扩展详细
SSD是作为Buffer Pool的扩展,而不是磁盘存储的扩展,也就是说SSD是归buffer pool管理器管,Buffer pool以在SSD上创建一个缓冲文件的方式存在,创建了一个多层的结构:
L1:内存,L2:SSD缓存文件。L2上面的数据都是干净的数据,L2目前看来只是为读提供缓存,不提供脏数据的缓存。从而加大了工作集,为数据读取提供良好的性能支持。

启用缓冲池扩展后,该功能会指定固态硬盘上缓冲池缓存文件的大小和文件路径。 此文件是固态硬盘上的一个连续存储范围,是在 SQL Server 实例启动期间静态配置的。
ALTERSERVER CONFIGURATION SETBUFFERPOOL EXTENSION ON
(FILENAME='c:\sqlserver.PBE',size = 5GB)



只有在禁用了缓冲池扩展功能的情况下,才能修改此文件的配置参数。 禁用缓冲池扩展后,将从注册表中删除所有相关的配置设置。SQL Server 实例关闭时,将会删除缓冲池扩展文件。
ALTERSERVER CONFIGURATION SETBUFFERPOOL EXTENSION OFF
最佳实践
1. 缓冲池扩展大小最大可为 max_server_memory 值的 32 倍。 我们建议物理内存 (max_server_memory) 的大小与缓冲池扩展的大小之比不应超过 1:16。 介于 1:4 至 1:8 之间的比率是最佳的。
2. 在生产环境中实现之前,应彻底测试缓冲池扩展。 处于生产过程中时,请避免对该文件进行配置更改或关闭该功能。 因为禁用该功能时会大大减小缓冲池大小,所以这些活动可能会对服务器性能产生负面影响。 禁用时,不回收用于支持该功能的内存,直到重新启动 SQL Server 的实例。 但是,如果重新启用该功能,将重用内存而不必重新启动实例。
Buffer pool 扩展相关信息
· sys.dm_os_buffer_pool_extension_configuration (Transact-SQL)
· sys.dm_os_buffer_descriptors (Transact-SQL)
|
XEvent |
说明 |
参数 |
|
sqlserver.buffer_pool_extension_pages_written |
在将页或页组从缓冲池逐出并写入缓冲池扩展文件时激发。 |
· number_page · first_page_id · first_page_offset · initiator_numa_node_id |
|
sqlserver.buffer_pool_extension_pages_read |
在将页从缓冲池扩展文件读取到缓冲池时激发。 |
· number_page · first_page_id · first_page_offset · initiator_numa_node_id |
|
sqlserver.buffer_pool_extension_pages_evicted |
在将页从缓冲池扩展文件中逐出时激发。 |
· number_page · first_page_id · first_page_offset · initiator_numa_node_id |
|
sqlserver.buffer_pool_eviction_thresholds_recalculated |
在计算逐出阈值时激发。 |
· warm_threshold · cold_threshold · pages_bypassed_eviction · eviction_bypass_reason · eviction_bypass_reason_description |
参考
SQL Server 2014新特性——Buffer Pool扩展的更多相关文章
- [SQL Server 2014] SQL Server 2014新特性探秘
SQL Server 2014新特性探秘(1)-内存数据库 简介 SQL Server 2014提供了众多激动人心的新功能,但其中我想最让人期待的特性之一就要算内存数据库了.去年我再西雅图参加SQ ...
- 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 撰写经历(Experience) 特约稿正文(Content-body) 第一部分:生活中资源 ...
- SQL Server 2014 新特性:IO资源调控
谈谈我的微软特约稿:<SQL Server 2014 新特性:IO资源调控> 2014-07-01 10:19 by 听风吹雨, 570 阅读, 16 评论, 收藏, 收藏 一.本文所涉及 ...
- SQL Server 2014 新特性——内存数据库
SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...
- 小心SQL SERVER 2014新特性——基数评估引起一些性能问题
在前阵子写的一篇博文"SQL SERVER 2014 下IF EXITS 居然引起执行计划变更的案例分享"里介绍了数据库从SQL SERVER 2005升级到 SQL SERVER ...
- SQL Server 2014新特性:五个关键点带你了解Excel下的Data Explorer
SQL Server 2014新特性:五个关键点带你了解Excel下的Data Explorer Data Explorer是即将发布的SQL Server 2014里的一个新特性,借助这个特性讲使企 ...
- SQL Server 2014 新特性——内存数据库(转载)
目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 内存优化表的索引 并发能力的提升 和竞争对手相比几点 ...
- SQL Server 2014新特性探秘(2)-SSD Buffer Pool Extension
简介 SQL Server 2014中另一个非常好的功能是,可以将SSD虚拟成内存的一部分,来供SQL Server数据页缓冲区使用.通过使用SSD来扩展Buffer-Pool,可以使得大量随 ...
- SQL Server 2014新特性探秘(1)-内存数据库
简介 SQL Server 2014提供了众多激动人心的新功能,但其中我想最让人期待的特性之一就要算内存数据库了.去年我再西雅图参加SQL PASS Summit 2012的开幕式时,微软就宣布 ...
随机推荐
- 在吉日嘎拉DotNet.WebForm中使用FluentScheduler调度任务
有些用户一直说系统发送的邮件一直收不到,投诉系统不正常,这时候怎么洗刷冤屈呢?将发送的每一封Email都保存到数据库中,并记录发送的日志,让用户无话可说. 自己创建3个表: MessageFailed ...
- PHP旧系统基于命名空间重构经验
命名空间其实只是一个形式,最终目的是重构代码,但这个过程想要一蹴而就是不可能的. 一开始给了一个伪命题:基于ThinkPHP的重构(不要问为什么).经过一段的实践,发现这是一个大错特错的思维方式,其中 ...
- js中typeof的使用方法
typeof在js中是一个一元操作符,可以判断操作数的类型,其返回值为字符串,有number.string.object.boolean.function.undefined.使用方式可以是typeo ...
- mongodb数据库备份导入导出数据
备份数据: mongodump -h 192.168.2.20 -u game -p 12345678 -d dbname -o /data/test/ --excludeCollection=use ...
- windows根据端口号找进程
d:\>netstat -ano | findstr "7777" TCP 127.0.0.1:7776 127.0.0.1:7777 ESTABLISHED 11764 T ...
- MODIS批量处理软件MRT的安装说明
最近在处理遥感影像的时候遇见了MODIS影像数据,从中MOD13中提取NDVI是相当的重要.在一番的百度之中找到了处理modis影像的神器------MRT 接下来我来说明一下MRT的具体安装,如果之 ...
- FancySelect – 更好用的 jQuery 下拉选择框插件
FancySelect 这款插件是 Web 开发中下拉框功能的一个更好的选择.FancySelect 使用方便,只要绑定页面上的任何 Select 元素,并调用就 .fancySelect() 就可以 ...
- iOS 三方库fmdb 的使用
使用fmdb 做本地数据的存储非常方便, 1. github 上搜索fmdb 下载压缩包 导入到工程中 (如果你的mac 有cocoapod 也可以直接通过cocoapod 添加) 2. 以下代码是通 ...
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
以下内容为原创,转载请注明:http://www.cnblogs.com/tiantianbyconan/p/3360938.html 如新浪微博下面的标签切换功能,我以前也写过一篇博文(http:/ ...
- 深入浅出-iOS程序性能优化 (转载)
iOS应用是非常注重用户体验的,不光是要求界面设计合理美观,也要求各种UI的反应灵敏,我相信大家对那种一拖就卡卡卡的 TableView 应用没什么好印象. iOS应用是非常注重用户体验的,不光是要求 ...