暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C SQL计划管理的目的

原创 Asher.HU 2021-02-04
333

 

SQL计划管理可防止由于计划更改而导致性能下降。

第二个目标是通过仅验证和接受可提高性能的计划更改来适应新的优化程序统计信息或索引之类的更改。

注意:

当事件引起不可逆的执行计划更改(例如删除索引)时,SQL计划基准无济于事。

本节包含以下主题:

 

27.2.1 SQL计划管理的好处

SQL计划管理可以改善或保留数据库升级以及系统和数据更改中的SQL性能。

具体而言,收益包括:

  • 安装新的优化程序版本的数据库升级通常会导致一小部分SQL语句的计划更改。

    大多数计划更改都会导致改进或没有性能更改。但是,某些计划更改可能会导致性能下降。SQL计划基准显着减少了升级导致的潜在回归。

    升级时,数据库仅使用计划基准中的计划。数据库将不在当前基准中的新计划放入保留区域,然后评估它们,以确定它们使用的资源是否少于基准中当前计划。如果计划执行得更好,则数据库会将其提升为基准。否则,数据库不会升级它们。

  • 正在进行的系统和数据更改可能会影响某些SQL语句的计划,从而可能导致性能下降。

    SQL计划基准有助于最大程度地降低性能下降并稳定SQL性能。

  • 新应用程序模块的部署将新的SQL语句引入数据库。

    应用程序软件可以使用在标准测试配置中针对新语句开发的适当的SQL执行计划。如果系统配置与测试配置显着不同,则数据库可以随着时间的推移发展SQL计划基准,以产生更好的性能。

也可以看看:

《 Oracle数据库升级指南》以了解如何升级Oracle数据库

 

27.2.2 SQL计划基准和SQL概要文件之间的差异

SQL配置文件和SQL计划基线都可以通过确保优化器仅使用最佳计划来帮助提高SQL语句的性能。

配置文件和基线都在内部使用提示来实现。但是,这些机制具有重大差异,包括以下内容:

  • 通常,SQL计划基线是主动的,而SQL概要文件是被动的。

    通常,您会出现重大性能问题之前创建SQL计划基准SQL计划基准会阻止优化器将来使用次优计划。

    调用SQL Tuning Advisor时,数据库将创建SQL配置文件,通常仅 SQL语句显示高负荷症状之后才执行此操作。SQL概要文件主要用于提供持续解决导致次优计划的优化器错误的有用功能。由于SQL配置文件机制是反应性的,因此无法保证数据库发生剧烈变化时的稳定性能。

    图27-1 SQL计划基准和SQL配置文件


  • SQL计划基准可重现特定计划,而SQL概要文件可纠正优化器成本估算。

    SQL计划基准是一组可接受的计划。每个计划都使用一组轮廓提示来实现,这些提示完全指定了特定计划。SQL概要文件也使用提示来实现,但是这些提示未指定任何特定的计划。而是,这些提示可以纠正优化程序估计中的错误计算,从而导致计划不理想。例如,提示可以纠正表的基数估计。

    因为配置文件不会将优化程序限制在任何一个计划中,所以SQL配置文件比SQL计划基线更灵活。例如,初始化参数和优化器统计信息的更改使优化器可以选择更好的计划。

Oracle建议您使用SQL Tuning Advisor。这样,您可以遵循顾问针对SQL配置文件提出的建议并计划基准,而不是尝试确定哪种机制最适合每个SQL语句。

也可以看看:

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论