MSSQL 2017的自动优化

0    109    1

Tags:

👉 本文共约13416个字,系统预计阅读时间或需51分钟。

简介

自动优化是一种数据库功能,提供对潜在查询性能问题的深入了解、提出建议解决方案并自动解决已标识的问题。

SQL Server 2017 (14.x) 中引入的自动优化功能会在每当检测到潜在性能问题时发出通知,并允许应用纠正措施,或允许数据库引擎自动修复性能问题。 通过自动优化 SQL Server,可以识别和修复由查询执行计划选择回归导致的性能问题。 Azure SQL 数据库中的自动优化功能还会创建必要的索引并删除未使用的索引。 有关查询执行计划的详细信息,请参阅执行计划

SQL Server 数据库引擎可监视在数据库上执行的查询,并且可自动提高工作负荷的性能。 数据库引擎具有内置智能机制,此机制可根据工作符合动态调整数据库,从而自动优化和提高查询性能。 有两种自动优化功能可用:

  • 自动计划更正:可识别有问题的查询执行计划,例如参数敏感度或参数探查问题,并通过在回归发生之前强制执行上一个已知良好的计划来修复与查询执行计划相关的性能问题。 适用范围:SQL Server(SQL Server 2017 (14.x) 及更高版本)、Azure SQL 数据库和 Azure SQL 托管实例
  • 自动索引管理:标识应在数据库中添加的索引以及应删除的索引。 适用于: Azure SQL 数据库

为什么启用自动优化?

经典数据库管理中的三个主要任务是监视工作负荷、识别关键的 Transact-SQL 查询,以及识别应添加以提高性能的索引,或很少使用且可删除以提高性能的索引。 SQL Server 数据库引擎提供针对需要监视的查询和索引的详细见解。 然而,持续监视数据库是一项艰巨且乏味的任务,尤其是在处理多个数据库时。 可能无法高效管理大量数据库。 可考虑使用自动优化功能将某些监视和优化操作委派给数据库引擎,而不是手动监视和优化数据库。

自动优化的工作原理是什么?

自动优化是一种连续的监视和分析进程,可持续了解工作负荷的特性并识别潜在问题和改进措施。

MSSQL 2017的自动优化

此过程能发现哪些索引和计划可能提高工作负荷性能以及哪些索引会影响工作负荷,数据库可据此进行动态调整以适应工作负荷。 基于这些发现,自动优化将应用可提高工作负荷性能的优化操作。 此外,在实现任何更改后,自动优化会持续监视数据库的性能,以确保它在提高工作负荷的性能。 将自动还原未提高性能的任何操作。 此验证过程非常重要,可确保自动优化所做的任何更改都不会降低工作负荷总体性能。

自动计划更正

自动计划更正是一种自动优化功能,用于标识执行计划选择回归,并通过强制执行上一个已知良好的计划自动修复问题。 有关查询执行计划和查询优化器的详细信息,请参阅查询处理体系结构指南

重要

自动计划更正根据数据库中启用的查询存储来跟踪工作负荷。

什么是执行计划选择回归?

SQL Server 数据库引擎可能使用不同的执行计划来执行 Transact-SQL 查询。 查询计划取决于统计信息、索引和其他因素。 应该用于执行 Transact-SQL 查询的最佳计划可能会随时间变化,具体取决于这些因素的变化。 在某些情况下,新计划可能不会比上一个计划好,而且新计划可能会导致性能回归,例如参数敏感度或参数探查相关问题。

MSSQL 2017的自动优化

每当注意到发生计划选择回归时,应找到以前的良好计划,并强制使用该计划而不是当前计划。 这可以通过使用 sp_query_store_force_plan 过程来完成。 SQL Server 2017 (14.x) 中的数据库引擎提供有关回归计划和建议纠正措施的信息。 此外,数据库引擎支持完全自动化此过程,并能够修复与计划更改相关的任何问题。

重要

在捕获基线后,应在数据库兼容性级别升级的范围内使用自动计划更正,以自动缓解工作负荷升级风险。 有关本用例的详细信息,请参阅在升级到新版 SQL Server 期间保持性能稳定性

自动计划选择更正

每当检测到计划选择回归时,数据库引擎可自动切换到上一个已知良好的计划。

MSSQL 2017的自动优化

数据库引擎自动检测任何潜在计划选择回归,包括应使用的计划(而不是错误计划)。 由自动计划更正强制生成的执行计划将与上一个已知良好的计划相同或类似。 由于生成的计划可能与上一个已知良好的计划不同,因此强制计划的性能可能会有所不同。 在极少数情况下,性能差异可能很大,并且是负面的;在这种情况下,自动计划更正将自动停止尝试强制执行替换计划。

当数据库引擎在回归发生前应用上一个已知良好的计划时,它会自动监视强制计划的性能。 如果强制计划没有回归计划好,则取消强制执行新计划,数据库引擎会编译一个新计划。 如果数据库引擎证实强制计划优于回归计划,将保留强制计划。 它将保留到重新编译前(例如,在下一个统计信息更新或架构更改时)。 有关计划强制执行和可强制执行的计划类型的详细信息,请参阅计划强制执行限制

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
MSSQL 2017的自动优化后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部