SQL Server 在高性能的工作负载运行时的优化选项

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 920093
简介
本文介绍了各种跟踪标志作为优化在 Microsoft SQL Server 2005年和 SQL Server 2008年中的选项。您可以使用这些跟踪标志提高 SQL Server 的性能。通常情况下,当在高性能的工作负载运行 SQL Server 时使用这些跟踪标志。

注意:本文介绍了跟踪标志被高级调优技术。您应该考虑使用这些跟踪标志后方可做更多基本和例行的优化。例如,应考虑使用这些跟踪标志后执行以下优化︰
  • 索引分析
  • I/O 平衡
  • SQL 查询分析
  • 监视的系统统计信息
此外,这些跟踪标志的主要具有以下特征的高端服务器上有用:
  • Cpu 数量,例如,多于 8 个 Cpu
  • 大量的主内存中,例如,超过 8 千兆字节 (GB) 的内存
  • 高 I/O 速率,例如,每秒或以上 500 兆字节 (MB) 每秒 10000 个以上的物理 I/O
本文介绍了跟踪标志可能会降低某些工作负载下的性能。我们建议您部署在生产环境中的任何更改之前,先评估您在测试系统上的工作负载的影响。

注意:这篇文章中的信息也适用于 SQL Server 2008 R2 的 CTP 版本。
更多信息

跟踪标志 652︰ 禁用页获取预扫描

跟踪标志 652 禁用页面预取扫描时。您可以打开跟踪标志 652 在启动时或在用户会话中。当您打开跟踪标志 652 在启动时,跟踪标记具有全局范围。当您打开跟踪标志 652 用户会话中时,跟踪标记具有会话作用域。如果您打开跟踪标志 652,SQL Server 不会再带来了数据库页到缓冲池中之前这些数据库页所使用的扫描。如果您打开跟踪标志 652,受益于页预先获取功能的查询表现出低性能。

跟踪标志 661︰ 禁用虚影记录的删除过程

跟踪标志 661 禁用虚影记录的删除过程。虚影记录是删除操作的结果。当您删除记录时,为虚影记录保留已删除的记录。之后,虚影记录的删除过程清除已删除的记录。当禁用此过程时,则不会清除已删除的记录。因此,不会释放已删除的记录占用的空间。这种现象会影响磁盘空间占用量和扫描操作的性能。

当您打开跟踪标志 661 在启动时或在用户会话中时,跟踪标志 661 始终适用于服务器,并具有全局范围。如果您关闭此跟踪标记时,虚影记录删除正确处理的工作原理。

跟踪标志 834︰ 使用 Microsoft Windows 大页面缓冲池分配

跟踪标志 834 导致 SQL Server 使用 Microsoft Windows 大页分配用于缓冲池分配的内存。页面大小取决于硬件平台,但页面大小可能为 16 MB 到 2 MB。大页面在启动时分配,并将保留在进程的生存期。跟踪标志 834 提高翻译视缓冲区 (TLB) cpu 的效率可以提高性能。

跟踪标志 834 仅适用于 64 位版本的 SQL Server。您必须打开跟踪标志 834 的内存中的锁定页用户权限。您可以打开跟踪标志 834 只在启动。

跟踪标志 834 可能阻止服务器启动如果内存碎片化,而不能分配大页面。因此,跟踪标志 834 是最适合于专用于 SQL Server 的服务器。

注意:如果您使用的从 SQL Server 2012年的列存储索引功能,我们不建议启用跟踪标志 834。

有关互操作性与大分页内存模型在 SQL Server 2012年及更高版本的列存储索引的详细信息,请参阅下面的 Microsoft 知识库文章︰


有关在 Windows 中的大页支持的详细信息,请参阅下面的 MSDN 资源︰

跟踪标志 836︰ 用于缓冲区池的最大服务器内存选项

跟踪标志 836 导致 SQL Server 缓冲池在启动而不是最大服务器内存选项的值基于总物理内存的大小。您可以使用跟踪标志 836 来减少在 32 位地址窗口化扩展 (AWE) 模式下启动时分配的缓冲区描述符数。

跟踪标志 836 仅适用于 32 位版本的 SQL Server 已启用了 AWE 分配。您可以打开跟踪标志 836 只在启动。

跟踪标志 2301年︰ 启用高级决策支持的优化

跟踪标志 2301年启用特定于决策支持查询的高级的优化。此选项适用于决策支持处理大型数据集。


您可以打开跟踪标志 2301年在启动时或在用户会话中。当您打开跟踪标志 2301年启动时,跟踪标记具有全局范围。当您打开跟踪标志 2301年用户会话中时,跟踪标记具有会话作用域。

禁用各种环形缓冲区的跟踪标记

环形缓冲区是可用于记录有关服务器的其他信息的 SQL Server 中的内部诊断机制。通常情况下,您可以使用此信息来解决服务器问题。通过使用sys.dm_os_ring_buffers动态管理视图可以浏览环形缓冲区的内容。

通常禁用环形缓冲区可以提高性能。但是,禁用环形缓冲区消除该 Microsoft 支持使用的诊断信息,可能会妨碍成功地解决问题。

以下跟踪标志禁用各种环形缓冲区。

跟踪标志 8011︰ 禁用环形缓冲区资源监视器

跟踪标志 8011 禁用资源监视器的其他诊断信息的集合。可以使用在此环形缓冲区信息来诊断内存不足情况。跟踪标志 8011 始终适用于服务器,它具有全局范围。您可以打开跟踪标志 8011 在启动时或在用户会话中。

跟踪标志 8012︰ 禁用计划程序环形缓冲区

每次发生以下事件之一时,SQL Server 计划环形缓冲区中记录一个事件︰
  • 计划程序上下文切换到另一个工作人员。
  • 工作人员被挂起。
  • 而继续工作。
  • 工作人员进入的预防模式或非优先的模式。
可以使用此环形缓冲区中的诊断信息来分析调度问题。例如,可以在此环形缓冲区使用信息来解决问题,当 SQL Server 停止响应。

有关计划程序跟踪标志 8012 禁用事件记录。您可以打开跟踪标志 8012 只在启动。

跟踪标志 8018︰ 禁用异常环形缓冲区
跟踪标志 8019︰ 禁用堆栈集合异常环形缓冲区

异常的信号缓冲区记录最后 256 节点引发的异常。每个记录都包含一些有关错误的信息,并且包含堆栈跟踪。将记录添加到环形缓冲区时将引发异常。

跟踪标志 8018 会禁止创建环形缓冲区中,并没有异常的信息记录。跟踪标志 8019 禁用堆栈集合过程中创建记录。如果启用了跟踪标志 8018 跟踪标志 8019 无效。禁用异常环形缓冲区将使其更难诊断与内部服务器错误相关的问题。您可以打开跟踪标志 8018 和只在启动跟踪标志 8019。

跟踪标志 8020︰ 禁用工作集中监视

在 SQL Server 解释来自操作系统的全局内存状态信号时,SQL Server 使用工作集的大小。当 SQL Server 解释的全局内存状态信号,跟踪标志 8020 考虑删除工作集的大小。如果您错误地使用此跟踪标记,发生大量分页时,和性能较差。打开跟踪标志 8020 之前,因此,与 Microsoft 支持部门联系。

您可以打开跟踪标志 8020 只在启动。

跟踪标志 8744︰ 禁用预取的范围

跟踪标志 8744 禁用预取Nested Loops运算符。当 SQL Server 执行计划包含Nested Loops运算符时,此跟踪标记的使用不正确可能会导致其他的物理读取。关于Nested Loops运算符的详细信息,请参阅 SQL Server 2005 联机丛书中的"逻辑和物理运算符参考"主题。

您可以打开跟踪标志 8744 在启动时或在用户会话中。当您打开跟踪标志 8744 启动时,跟踪标记具有全局范围。当您打开跟踪标志 8744 用户会话中时,跟踪标记具有会话作用域。

下表提供了有关产品或工具,自动检查在您的 SQL Server 的实例,并对规则进行评估所依据的 SQL Server 版本中的"症状"部分中所述的条件的详细信息。

规则软件规则标题规则说明对规则进行评估所依据的产品版本
系统中心顾问列存储索引的 SQL Server 和跟踪标志 834 可能导致不稳定的服务器此 SQL Server 实例中审查程序检测到一个或多个列存储索引和跟踪标志 834 (大页面的缓冲池)。这会导致服务器不稳定。我们建议不要启用此跟踪标记时要使用的列存储索引。SQL Server 2012


参考
有关如何打开或关闭跟踪标志,有关全局跟踪标志和会话跟踪标志的详细信息,请参阅 SQL Server 2005 联机丛书中的下列主题︰
  • DBCC TRACEON (事务处理 SQL)
  • 跟踪标志 (Transact-SQL)
  • DBCC TRACESTATUS (事务处理 SQL)
  • 在 SQL Server 2005 数据库引擎功能的重大更改

警告:本文已自动翻译

属性

文章 ID:920093 - 上次审阅时间:12/05/2016 20:12:00 - 修订版本: 4.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Express Edition with Advanced Services, Microsoft SQL 2005 Server Workgroup, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Standard

  • kbexpertiseadvanced kbsql2005engine kbsql2005tsql kbinfo kbmt KB920093 KbMtzh
反馈