gpt4 book ai didi

sql - Oracle 中的所有计划生成器计划

转载 作者:行者123 更新时间:2023-12-02 03:26:41 26 4
gpt4 key购买 nike

阅读时Oracle SQL tuning guide我遇到过这样一句话(你可以在这个chapter中找到它):

The plan generator explores various plans for a query block by trying out different access paths, join methods, and join orders.

Many plans are possible because of the various combinations that the database can use to produce the same result. The optimizer picks the plan with the lowest cost.

Figure 4-2 Optimizer Components

Figure 4-2 Optimizer Components

是否有可能以某种方式获得由计划生成器生成的所有这些计划?

也许有用于此 View 或系统 View 的标准 PL/SQL 包?

最佳答案

通常,您不需要查看所有可能的计划,但在某些情况下,会出现一个有趣的问题,即为什么 Oracle 会放弃某些计划并使用替代计划。

要回答这个问题,理想的条目是 Oracle 生成的 10053 跟踪

Wolfgang Breitling 有一篇关于这个主题的经典论文,可以在 here 找到。 .

还有乔纳森·刘易斯 (Jonathan Lewis) 在他的 Cost-Base Oracle Fundamentals 中第 14 章10053 Trace专门讨论了这个主题。

Google 肯定会提供其他引用资料。

一句警告。 10053 并不是 Oracle 上下文中最简单的东西。此外,在每个版本中,您可能会期望输出发生变化。一个很好的学习起点是研究在两个不同环境中生成不同执行计划的查询。简单地获取两个数据库中的 10053 跟踪并制作文件差异并观察差异。您将看到优化器参数、对象或系统统计信息是否存在差异,以及这些变化如何影响最终执行计划的选择。

关于sql - Oracle 中的所有计划生成器计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53239892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com