加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer 2014 缓冲池扩展(Buffer Pool Extension)

发布时间:2020-12-12 13:22:29 所属栏目:MsSql教程 来源:网络整理
导读:SQL Server 2014 中引入的缓冲池扩展提供数据库引擎缓冲池的非易失性随机存取内存(即固态硬盘)扩展的无缝集成,从而显著提高 I/O 吞吐量。 并非每个 SQL Server 版本均提供了缓冲池扩展。更多说明参考 ?缓冲池扩展 缓冲池扩展功能的优点: ?随机 I/O 吞吐

SQL Server 2014 中引入的缓冲池扩展提供数据库引擎缓冲池的非易失性随机存取内存(即固态硬盘)扩展的无缝集成,从而显著提高 I/O 吞吐量。 并非每个 SQL Server 版本均提供了缓冲池扩展。更多说明参考 ?缓冲池扩展


缓冲池扩展功能的优点:

>> ?随机 I/O 吞吐量提高

>> ?I/O 滞后时间缩短

>> ?事务吞吐量提高

>> ?由于采用更大的混合缓冲池,读取性能提高

>> ?Improved read performance with a larger hybrid buffer pool

>> ?具有一种可利用现有和将来的低成本内存驱动器的缓存体系结构


SSD 存储用作内存子系统的扩展而不是磁盘存储子系统的扩展。 也就是说,通过缓冲池扩展文件,缓冲池管理器可以使用 DRAM 和 NAND 闪存,在由固态硬盘支持的非易失性随机存取内存中保持一个大得多的温热页缓冲池。 这会在固态硬盘上创建一个多级缓存层次结构,级别 1 (L1) 作为 DRAM,级别 2 (L2) 作为缓冲池扩展文件。 仅将干净页写入 L2 缓存,以帮助确保数据安全。 缓冲区管理器会处理 L1 和 L2 缓存之间的干净页移动。

下图所示为缓冲池相对于其他 SQL Server 组件的高级体系结构概览。



启用缓冲池扩展后,该功能会指定固态硬盘上缓冲池缓存文件的大小和文件路径。 此文件是固态硬盘上的一个连续存储范围,是在 SQL Server 实例启动期间静态配置的。 只有在禁用了缓冲池扩展功能的情况下,才能修改此文件的配置参数。 禁用缓冲池扩展后,将从注册表中删除所有相关的配置设置。 SQL Server 实例关闭时,将会删除缓冲池扩展文件。


最佳实践:

1. 首次启用缓冲池扩展后,建议重新启动 SQL Server 实例,以获得最大的性能优势。


2. 对于企业版,缓冲池扩展大小最大可为 max_server_memory 值的 32 倍,而对于标准版,最大可为其 4 倍。 我们建议物理内存 (max_server_memory) 的大小与缓冲池扩展的大小之比不应超过 1:16。 介于 1:4 至 1:8 之间的比率是最佳的。 有关设置 max_server_memory 选项的信息。


3. 在生产环境中实现之前,应彻底测试缓冲池扩展。 处于生产过程中时,请避免对该文件进行配置更改或关闭该功能。 因为禁用该功能时会大大减小缓冲池大小,所以这些活动可能会对服务器性能产生负面影响。 禁用时,不回收用于支持该功能的内存,直到重新启动 SQL Server 的实例。 但是,如果重新启用该功能,将重用内存而不必重新启动实例。


设置 buffer pool 限制:

USE master
GO
EXEC sp_configure 'show advanced options',1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'max server memory (MB)'
GO

启用和配置缓冲池扩展:

ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION  
ON ( FILENAME = N'D:os_file_path_and_name.BPE',SIZE = 2046MB) 
GO


注意:文件存放应该在?固态硬盘 (SSD) 中。

若要更改文件位置或者大小,先关闭缓冲池扩展。(关闭后,文件自动删除)

ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION OFF
GO
 
ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION  
ON ( FILENAME = N'E:os_file_path_and_name.BPE',SIZE = 4GB) 
GO

缓冲池扩展信息,可以查看以下 DMV:

SELECT * FROM sys.dm_os_buffer_pool_extension_configuration
SELECT * FROM sys.dm_os_buffer_descriptors
视图?dm_os_buffer_descriptors 的字段?is_in_bpool_extension 可以确定是否有页面使用了扩展缓存。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读