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新特性探秘(2)-SSD Buffer Pool Extension

缓冲池扩展

ALTER SERVER CONFIGURATION (Transact-SQL)

SQL Server 2014新特性——Buffer Pool扩展的更多相关文章

  1. [SQL Server 2014] SQL Server 2014新特性探秘

    SQL Server 2014新特性探秘(1)-内存数据库   简介 SQL Server 2014提供了众多激动人心的新功能,但其中我想最让人期待的特性之一就要算内存数据库了.去年我再西雅图参加SQ ...

  2. 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 撰写经历(Experience) 特约稿正文(Content-body) 第一部分:生活中资源 ...

  3. SQL Server 2014 新特性:IO资源调控

    谈谈我的微软特约稿:<SQL Server 2014 新特性:IO资源调控> 2014-07-01 10:19 by 听风吹雨, 570 阅读, 16 评论, 收藏, 收藏 一.本文所涉及 ...

  4. SQL Server 2014 新特性——内存数据库

    SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...

  5. 小心SQL SERVER 2014新特性——基数评估引起一些性能问题

    在前阵子写的一篇博文"SQL SERVER 2014 下IF EXITS 居然引起执行计划变更的案例分享"里介绍了数据库从SQL SERVER 2005升级到 SQL SERVER ...

  6. SQL Server 2014新特性:五个关键点带你了解Excel下的Data Explorer

    SQL Server 2014新特性:五个关键点带你了解Excel下的Data Explorer Data Explorer是即将发布的SQL Server 2014里的一个新特性,借助这个特性讲使企 ...

  7. SQL Server 2014 新特性——内存数据库(转载)

    目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 内存优化表的索引 并发能力的提升 和竞争对手相比几点 ...

  8. SQL Server 2014新特性探秘(2)-SSD Buffer Pool Extension

    简介     SQL Server 2014中另一个非常好的功能是,可以将SSD虚拟成内存的一部分,来供SQL Server数据页缓冲区使用.通过使用SSD来扩展Buffer-Pool,可以使得大量随 ...

  9. SQL Server 2014新特性探秘(1)-内存数据库

    简介    SQL Server 2014提供了众多激动人心的新功能,但其中我想最让人期待的特性之一就要算内存数据库了.去年我再西雅图参加SQL PASS Summit 2012的开幕式时,微软就宣布 ...

随机推荐

  1. jquery可见性选择器(匹配所有隐藏的元素)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Android布局实现圆角边框

    首先,在res下面新建一个文件夹drawable,在drawable下面新建三个xml文件:shape_corner_down.xml.shape_corner_up.xml和shape_corner ...

  3. 练习使用markdown编辑

    markdown纯文本编辑语言加粗,斜体Core Java 这是一篇学习了markdown编辑之后的练习 无序列表 1 2 > 怕什么真理无穷,进一寸有一寸的欢喜! 以下是代码的引用 class ...

  4. Appcelerator Titanium Studio: JNI_CreateJavaVM missing error

    Mac升级到Yosemite后,Titanium Studio启动不了,报Appcelerator Studio: JNI_CreateJavaVM missing error 之类的错误,重装了Or ...

  5. AFNetworking 3.1

    听说之后AFHttpWorking版本可能会影响到苹果的审核,今天下了最新版本的AFHttpWorking,并且做了简单的封装,我这里是通过cocoapods下载了两个工具 1=AFHttpWorki ...

  6. 2016 年青岛网络赛---Family View(AC自动机)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5880 Problem Description Steam is a digital distribut ...

  7. HDU 4293---Groups(区间DP)

    题目链接 http://acm.split.hdu.edu.cn/showproblem.php?pid=4293 Problem Description After the regional con ...

  8. node.js 抓取网页数据

    var $ = require('jquery'); var request = require('request'); request({ url: 'http:\\www.baidu.com',/ ...

  9. Spring面试基本问题(1)

    1.什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合.广泛的基础性支持的Java平台.Spring帮助开发者解决了开发中基础性的问题, ...

  10. <记录学习>(前三天)京东页面各种注意点

    培训学校第1到3天先学习HTML现在流行的是HTML5,目前学习的是HTML5规范.(给有基础一定的人学习)前三天学习的是京东页面的编写,和以前写的不同,页面看上去和自己写的一样,但老师讲的还是有很多 ...