SQL Server 2016版本 让tempdb配置更加简单

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

在SQL Server 2016中,tempdb功能得到了一定的增强,这有助于应用程序提升响应速度。让我们来了解一下这些变化,并学习如何在SQL Server 2016中正确配置tempdb。 在对SQL Server进行升级后,数据库管理员首先要考虑的是tempdb数据库文件的大小是否合适,这些文件用于保存临时表和存储过程,以及其他在SQL Server重启过程中不被保存的项目。SQL Server 2016对tempdb功能进行了改善,旨在加速应用程序的响应过程。

让我们看看如何在SQL Server 2016中设置tempdb,以便充分利用你的数据库服务器。 DBA所面临的一个问题是,在应……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

在SQL Server 2016中,tempdb功能得到了一定的增强,这有助于应用程序提升响应速度。让我们来了解一下这些变化,并学习如何在SQL Server 2016中正确配置tempdb。

在对SQL Server进行升级后,数据库管理员首先要考虑的是tempdb数据库文件的大小是否合适,这些文件用于保存临时表和存储过程,以及其他在SQL Server重启过程中不被保存的项目。SQL Server 2016对tempdb功能进行了改善,旨在加速应用程序的响应过程。让我们看看如何在SQL Server 2016中设置tempdb,以便充分利用你的数据库服务器。

DBA所面临的一个问题是,在应用程序广泛使用tempdb的情况下,SQL Server在临时数据库中分配新页面的时候将会遭遇锁争用问题。如果竞争十分激烈,tempdb相关查询可能会在短时间内没有响应。一旦出现此类情景,就表明SQL Server tempdb需要调整大小以提升整体查询性能。想要开始这一过程,或调整tempdb的大小,DBA可以使用Transact - sql中的sys.dm_exec_request或sys.dm_os_waiting_tasks动态管理视图查询来找到SQL Server实例所需的tempdb资源信息。

接下来你可以继续进行tempdb配置。你为tempdb配置多少数据文件取决于SQL Server一个实例被分配到的逻辑处理器数。在具有八个或更少的逻辑处理器情况下,tempdb 数据文件个数应该等于逻辑处理器总数。例如,如果你有六个逻辑处理器,你就需要配置6个tempdb数据文件。在具有多于八个逻辑处理器的情况下,你应该配置八个数据文件——如果你没有遇到争用问题,这是微软推荐的最大数量。

SQL Server 2016 之前版本的tempdb配置

在早期版本的SQL Server中,安装过程默认创建一个tempdb数据文件。SQL Server默认tempdb数据文件的初始大小是8 MB,当需要扩展时,文件大小将以10% 的比例递增。同样的,tempdb 事务日志文件的默认初始大小是1 MB,同样会以10%的比例递增(参见图1)。

SQL Server 2014和更早版本中的默认tempdb配置

图1:SQL Server 2014和更早版本中的默认tempdb配置

SQL Server 2016 中tempdb的改进

SQL Server 2016的安装和设置向导可以自动检测可用CPU核心数量并使用这个数字来作为tempdb是数据文件数量,当然这个数量最大为8。这应该有助于避免SQL Server锁争用问题,此类问题通常发生在tempdb只使用一个数据文件的情况下。此外,SQL Server 2016 tempdb 数据和日志文件的初始大小都为8 MB,自增大小为64 MB。

从SQL Server 2016开始,你不再需要启用跟踪标志1117和1118,在服务器层面控制tempdb文件的增长和分配到新数据库对象的数据页。现在如果有多个tempdb数据文件可用,它们会根据设置同时自动增长。此外,tempdb中所有页面分配将来自于8个物理上连续页面的单一盘区,并绑定到一个对象,而不是每个页面都来自于分散的盘区。

微软也大大改善了SQL Server 2016中tempdb的图形用户配置界面。数据库引擎配置接口中的tempdb界面允许你轻松地配置临时数据库的参数,包括数据文件的数量、初始大小和数据文件和日志文件的自增配置,以及文件目录的位置(参见图2)。此外,你可以为tempdb文件指定多个卷,以流的方式进行跨目录的文件分配。

SQL Server 2016 中tempdb的数据库引擎配置界面

图2:SQL Server 2016 中tempdb的数据库引擎配置界面

tempdb的手动配置过程

如果你打算从命令行安装SQL Server 2016,你要添加图3中所示的一些参数,以配置多个tempdb数据文件,并设置初始大小和自增设置。

SQL Server 2016的tempdb配置参数

图3:SQL Server 2016的tempdb配置参数

图4显示了一个示例配置的命令行代码,该配置下,tempdb具有四个数据文件,采用默认的文件大小和自增设置。

配置具有四个数据文件的tempdb的命令行代码

图4:配置具有四个数据文件的tempdb的命令行代码

无论使用哪种方法,在SQL Server中正确地配置tempdb 以避免锁争用问题对于任何生产数据库服务器来说都是至关重要的。SQL Server 2016让这个配置变得更为容易,因为它的安装和设置向导可以检测可用内核数量,并根据微软的部署最佳实践,来推荐合适的配置。这个功能的增强将帮助DBA们在新安装数据库时更好地配置tempdb,在升级到新版本的数据库时也一样。

作者

Ashish Kumar Mehta
Ashish Kumar Mehta

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

翻译

杨宏玉
杨宏玉

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

相关推荐