当前位置: 首页> 汽车> 维修 > Dav_笔记10:Using SQL Plan Management之3

Dav_笔记10:Using SQL Plan Management之3

时间:2025/8/2 21:40:09来源:https://blog.csdn.net/Dav_2099/article/details/140644261 浏览次数: 0次

将SQL计划基准与SQL Tuning Advisor一起使用

使用SQL Tuning Advisor调整SQL语句时,如果顾问程序找到调优计划并验证其性能优于从相应SQL计划基准中选择的计划,则建议接受SQL配置文件。 接受SQL配置文件后,数据库会将调整后的计划添加到相应的SQL计划基准。 但是,SQL Tuning Advisor不会在计划历史记录中验证现有的未接受计划。

在Oracle Database 11g中,自动配置的任务在维护窗口期间运行SQL Tuning Advisor。 此任务针对由自动工作负载存储库(AWR)快照中收集的执行性能数据标识的高负载SQL语句。 自动SQL调优任务实现SQL Tuning Advisor提出的SQL配置文件建议。 因此,数据库会自动将已调整的计划添加到已识别的高负载SQL语句的SQL计划基准中。

使用固定SQL计划基准

当SQL计划基准包含至少一个其FIXED属性设置为YES的已启用计划时,它将得到修复。您可以使用固定的SQL计划基准来修复SQL语句的可能计划集(通常是一个计划),或者通过将“概述”计划作为固定计划加载来迁移现有的存储轮廓。

如果固定的SQL计划基准还包含非固定计划,则优化程序优先于非固定计划的固定计划。因此,即使非固定计划可能具有更低的成本,优化器也会以最低的成本选择固定计划。如果没有任何固定计划可重现,则优化程序会选择最佳的非固定计划。

优化程序不会将新计划添加到固定的SQL计划基准。由于优化程序不会自动添加新计划,因此在执行DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE时,数据库不会生成固定的SQL计划基准。但是,您可以通过从共享SQL区域或SQL调优集手动将新计划加载到其中来发展固定的SQL计划基准。

使用SQL Tuning Advisor调整具有固定SQL计划基准的SQL语句时,SQL配置文件建议具有特殊含义。接受SQL配置文件后,数据库会将调整后的计划作为非固定计划添加到固定SQL计划基准。然而,如上所述,当存在可再现的固定计划时,优化器不使用调整的计划。因此,SQL调优的好处可能无法实现。要启用调整计划,请通过将其FIXED属性设置为YES,手动将调整后的计划更改为固定计划。

显示SQL计划基准

要查看存储在给定语句的SQL计划基准中的计划,请使用DBMS_XPLAN程序包的DISPLAY_SQL_PLAN_BASELINE函数。以下示例显示由句柄(sql_handle)指定的指定SQL语句的一个或多个执行计划:

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE(sql_handle=>'SYS_SQL_209d10fabbedc741',format=>'basic'));

或者,您可以通过提供计划名称(plan_name)来显示单个计划。

此函数使用存储在SQL管理库中的计划信息来解释和显示计划。 在此示例中,DISPLAY_SQL_PLAN_BASELINE函数显示句柄SYS_SQL_209d10fabbedc741指定的SQL语句的执行计划:

您还可以直接在DBA_SQL_PLAN_BASELINES视图上使用SELECT语句显示SQL计划基准信息,如以下示例所示:

SELECT SQL_HANDLE, PLAN_NAME, ENABLED, ACCEPTED, FIXEDFROM DBA_SQL_PLAN_BASELINES;

关键字:Dav_笔记10:Using SQL Plan Management之3

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: