SQL Server 2014引入了缓冲池扩展功能,它可以提高查询的性能。以下介绍该功能的好处以及启用、禁用该功能的具体操作方法。 SQL Server缓冲池是对SQL Server系统内存中查询结果的一个缓存。有了该缓存的存在,后续查询可以共享相同的结果,从而让查询执行得更快,此时SQL Server可以从缓冲池缓存中获取数据,而不是从磁盘存储中获取。
SQL Server 2014引入了以固态驱动器或其他非易失性存储设备扩展缓冲池的能力。缓冲池的扩展功能,也将在SQL Server 2016上实现,这将有助于提高在线事务处理系统的性能,且该方式的性价比较高。 磁盘I/O的瓶颈会导致OLTP性……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属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服务器实例,在未重启之前,系统不会回收用于支持扩展的内存。
翻译
TechTarget特邀编辑。北京邮电大学计算机科学与技术专业硕士。熟悉软件开发流程,对系统管理,网络配置,数据库应用等方面有深入的理解和实践经验。现就职于IBM(中国)投资有限公司,从事IBM服务器相关软件的开发工作。业余时间喜欢游泳登山,爱健身,喜欢结交朋友。
相关推荐
-
SQL Server 2014 新特性让混合云场景成为可能
SQL Server 2014的特性提供了本地支持,让SQL Server数据库文件可以作为MicrosoftcAzure blob使用。
-
SQL Server 2005即将终止服务 你准备好了么?
2016年4月12日,微软将正式终止SQL Server 2005相关服务。微软正在终止扩展支持,这意味着不再有新特性更新,什么都没了。
-
如何使用微软Azure Blob Storage Service进行数据库备份与恢复?
有了微软公司的Azure Blob Storage服务,我们执行数据库备份和恢复操作就容易多了。本文将逐步介绍该服务的使用方法。
-
数据库产品巡礼:微软SQL Server 2014概述
Windows下的Microsoft SQL Server 2014可以用来构建,部署以及管理本地和云应用程序。