SQL计划选择是优化程序的功能,它可以基于存储的计划历史记录来检测计划变更,并使用SQL计划基准来选择计划以避免潜在的性能下降。
当数据库对SQL语句执行硬解析时,优化程序将生成最佳成本计划。默认情况下,优化器然后尝试在SQL计划基线中为该语句找到匹配的计划。如果不存在计划基准,那么数据库将使用最佳成本计划运行该语句。
如果存在计划基准,那么优化程序的行为取决于新生成的计划是否在计划基准中:
- 如果新计划在基线中,则数据库使用找到的计划执行该语句。
- 如果新计划不在基线中,则优化器会将新生成的计划标记为不接受,并将其添加到计划历史记录中。优化程序的行为取决于计划基准的内容:
- 如果计划基线中存在固定计划,那么优化器将使用成本最低的固定计划。
- 如果计划基线中不存在固定计划,那么优化器将使用成本最低的基线计划。
- 如果计划基线中不存在可复制的计划(如果基线中的每个计划都引用了下降的索引,则可能会发生这种情况),那么优化器将使用新生成的基于成本的计划。
图27-3选择SQL计划的决策树
也可以看看:
“ 固定计划 ”
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




