当语句存在已激活且被接受的基线执行计划时,优化器在对 SQL 语句进行编译时,会将当前解析出的执行计划与基线当中的执行计划进行比较,采用代价最低的执行计划。过程如下:
• 优化器采用基于代价的原则,解析语句的执行计划,并选择代价最小的执行计划;
o 如果语句不存在基线执行计划,则使用当前找到的代价最小执行计划(执行计划选择 结束);
o 如果语句存在基线执行计划,则对基线当中的固定(Fixed)执行计划进行匹配;
如果与基线当中某条固定执行计划匹配,则使用当前找到的代价最小执行计划
(执行计划选择结束);
如果基线中没有固定执行计划或未匹配到固定执行计划,则对基线中已接受的执 行计划进行匹配;
如果与基线当中已接受执行计划匹配,则使用当前找到的代价最小执行计 划(执行计划选择结束);
如果没有匹配到已接受执行计划,则通过 SQL 分析器(SQL Analyzer)对基线中已接受执行计划进行代价评估,并采用代价最小的接受执执行计划; 如果基线中不存在固定执行计划,则将当前解析出的执行计划则存储为历史执行计划(执行计划选择结束)。
注意,要使优化器在编译 SQL 时选择基线执行计划,必须确保参
optimizer_use_sql_plan_baselines 值为 TRUE(即默认值)。
以下例子演示了语句存在基线执行计划时,优化器未找到与当前解析出的执行计划匹配的基线执行计划的情况
最后修改时间:2021-02-25 14:20:46
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1327次阅读
2025-03-13 11:40:53
【专家观点】罗敏:从理论到真实SQL,感受DeepSeek如何做性能优化
墨天轮编辑部
1314次阅读
2025-03-06 16:45:38
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
803次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
729次阅读
2025-03-06 09:41:49
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
469次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
365次阅读
2025-03-12 21:27:56
SQLE 4.0 正式版发布,新增 SQL 重写、SQL 性能追踪、语法知识图谱等功能
爱可生开源社区
365次阅读
2025-03-07 10:30:00
Oracle DataGuard高可用性解决方案详解
孙莹
318次阅读
2025-03-26 23:27:33
Oracle分区和执行计划相关的几个问题
听见风的声音
311次阅读
2025-03-07 08:51:42
数据库管理-第299期 数据库是否需要定期重启(20250306)
胖头鱼的鱼缸
253次阅读
2025-03-06 09:09:35
TA的专栏
热门文章
我的故障分析及处理思路分享(李真旭)
2020-10-22 10982浏览
公共子表达式消除(Common Subexpression elimination,CSE)
2020-08-26 6162浏览
Oracle数据库的跟踪和分析方法
2020-10-02 5004浏览
2.5.9使用systemd管理MySQL服务器
2020-10-20 4493浏览
初探华为云GaussDB (for MySQL)
2020-12-11 3839浏览
最新文章
28.4.4 INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS 表
2024-09-29 93浏览
28.4.3 INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU 表
2024-09-29 60浏览
28.4.2 INFORMATION_SCHEMA INNODB_BUFFER_PAGE 表
2024-09-29 55浏览
28.4.1 INFORMATION_SCHEMA InnoDB 表参考
2024-09-29 62浏览
28.3.50 INFORMATION_SCHEMA VIEW_TABLE_USAGE 表
2024-09-29 64浏览