如何配置SQL Server 2014缓冲池扩展功能?

日期: 2016-04-11 作者:Ashish Kumar Mehta翻译:杨宏玉 来源:TechTarget中国 英文

SQL Server 2014引入了缓冲池扩展功能,它可以提高查询的性能。以下介绍该功能的好处以及启用、禁用该功能的具体操作方法。 SQL Server缓冲池是对SQL Server系统内存中查询结果的一个缓存。有了该缓存的存在,后续查询可以共享相同的结果,从而让查询执行得更快,此时SQL Server可以从缓冲池缓存中获取数据,而不是从磁盘存储中获取。

SQL Server 2014引入了以固态驱动器或其他非易失性存储设备扩展缓冲池的能力。缓冲池的扩展功能,也将在SQL Server 2016上实现,这将有助于提高在线事务处理系统的性能,且该方式的性价比较高。 磁盘I/O的瓶颈会导致OLTP性……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

SQL Server 2014引入了缓冲池扩展功能,它可以提高查询的性能。以下介绍该功能的好处以及启用、禁用该功能的具体操作方法。

SQL Server缓冲池是对SQL Server系统内存中查询结果的一个缓存。有了该缓存的存在,后续查询可以共享相同的结果,从而让查询执行得更快,此时SQL Server可以从缓冲池缓存中获取数据,而不是从磁盘存储中获取。SQL Server 2014引入了以固态驱动器或其他非易失性存储设备扩展缓冲池的能力。缓冲池的扩展功能,也将在SQL Server 2016上实现,这将有助于提高在线事务处理系统的性能,且该方式的性价比较高。

磁盘I/O的瓶颈会导致OLTP性能的下降,解决该类问题最常见的方法通常是给SQL Server 系统添加更多的内存或高性能磁盘驱动器。然而,这些选项都十分昂贵。因此,SQL Server缓冲池扩展技术对于企业来说是十分有用的。它在SQL Server 上构建一个缓冲池,由8 KB大小的数据页和索引页组成,这样可以以一个相对较低的成本来处理更大的数据集。根据微软的统计,从传统磁盘I/O操作转变为使用缓冲池扩展技术的SSD I/O,能够大幅度提高I/O吞吐量。

该特性目前在 SQL Server 2014.的Enterprise,BI以及 Standard x64 版本中可用。在SQL Server 2014上启用缓冲池扩展功能还为数据库管理员提供了其他几个优势。通过缓冲池扩展功能,DBA可以提高查询性能,同时限制SQL服务器实例的内存数量,这可以通过transact - SQL中的SP_CONFIGURE MAX SERVER MEMORY 参数实现。他们还可以在处理工作负载量很大时启用扩展,而不需要重新启动SQL服务器实例。

启用缓冲池扩展

为了启用缓冲池扩展功能,首先你需要找到当前SQL服务器实例所配置的服务器内存参数,你可以使用SP_CONFIGURE存储过程查找,具体步骤如下所示:

USE master

GO

EXEC sp_configure 'show advanced options', 1

RECONFIGURE WITH OVERRIDE

GO

EXEC sp_configure 'max server memory (MB)'

GO

在这个例子中,假设了用户的实例配置为可用的RAM为16 GB。在启用和配置缓冲池扩展功能时,用户将其设置为32 GB,作为新的最大文件大小,并添加了专用的150 GB SSD设备作为SQL Server系统的驱动器。

在继续启用扩展之前,您还需要在驱动上创建一个名为“BUFFER POOL EXTENSION”的文件夹。如果这个文件夹不存在,你接下来的查询将会失败。设置的文件夹后,执行下面的脚本。

USE master

GO

ALTER SERVER CONFIGURATION

SET BUFFER POOL EXTENSION ON

 (FILENAME = 'P:BUFFER POOL EXTENSIONSQLServerCache.BUFFER POOL EXTENSION', SIZE = 32 GB);

GO

禁用和改变扩展

在SQL Server 2014禁用缓冲池扩展功能,你可以执行下面的脚本。然而,为了避免造成负面影响,禁用扩展后请重启SQL服务器实例。

USE master

GO

ALTER SERVER CONFIGURATION

 SET BUFFER POOL EXTENSION OFF;

GO

在改变现有的缓冲池扩展参数之前,你需要禁用该功能,然后修改参数,再重新启用它。改变或修改缓冲池扩展文件的大小——例如,文件大小增加到64 GB,你可以执行下面的脚本。

USE master

GO

ALTER SERVER CONFIGURATION

 SET BUFFER POOL EXTENSION OFF;

GO

ALTER SERVER CONFIGURATION

SET BUFFER POOL EXTENSION ON

 (FILENAME = 'P:BUFFER POOL EXTENSIONSQLServerCache.BUFFER POOL EXTENSION', SIZE = 64 GB);

GO

重新启用扩展的时候,你所做的修改将会生效,这时不需要重新启动SQL服务器实例。

缓冲池扩展的最佳范例

微软表示,在SQL Server Enterprise Edition版本的服务器实例中,缓冲池可以扩展到物理内存的32倍(例如MAX SERVER MEMORY),在标准版则为4倍。但微软建议初始比率定在1:16或者更少(内存数量和扩展的比例),1:8和1:4的比例也可以考虑,但需要额外注意。、

据微软所述,投入实际生产之前,用户应该在生产环境中找出最合适的文件大小,并进行全面的测试。

此外,如果扩展功能被禁用或文件变小,导致整体缓冲池的大小缩减,SQL Server系统性可能会受到负面影响。如果你禁用缓冲池扩展,请确保尽快重启SQL服务器实例,在未重启之前,系统不会回收用于支持扩展的内存。

作者

Ashish Kumar Mehta
Ashish Kumar Mehta

数据库管理器等相关领域资深作者。在数据库管理、性能调优、数据库开发和Microsoft SQL Server等技术培训方面有超过十年的丰富经验。

翻译

杨宏玉
杨宏玉

TechTarget特邀编辑。北京邮电大学计算机科学与技术专业硕士。熟悉软件开发流程,对系统管理,网络配置,数据库应用等方面有深入的理解和实践经验。现就职于IBM(中国)投资有限公司,从事IBM服务器相关软件的开发工作。业余时间喜欢游泳登山,爱健身,喜欢结交朋友。

相关推荐