【问题标题】:How to read the recommendations from DBA? [closed]如何阅读 DBA 的建议? [关闭]
【发布时间】:2016-04-01 05:30:11
【问题描述】:

我想知道/学习 NESTED LOOPS 和 Hash join 之间的区别。为此,我发布了这个问题。查询和解释计划很长,这里就不贴了。

我有以下 DBA 的建议,谁能解释一下新的执行计划需要什么?

原始执行计划 1

新的执行计划 1

我认为它需要移除 NESTED LOOPS,如何移除这些 NESTED LOOPS?

【问题讨论】:

  • 您是否考虑过与您的 DBA 交谈并询问他们的意思?这是一个老把戏,但它可能会奏效。
  • 哪个快? hash 或 NESTED LOOPS,为什么 DBA 建议删除 NESTED LOOPS?
  • @Muhammad 一般来说,嵌套循环最适合从表中选择一小部分行,而 HASH JOIN 在选择大部分行时最好。但这是一个复杂的主题,需要更多信息来回答这个问题。对于初学者来说,使用explain plan for select ... 然后select * from table(dbms_xplan.display); 以标准格式发布整个解释计划会有所帮助。另外,查询是什么,DBA 是如何做出改变的?是代码更改、统计、计划管理等吗?
  • @JonHeller 我想知道NESTED LOOPS和hash join的区别,My Query和explain plan很长,这里就不加了。
  • @JonHeller 关于嵌套循环和散列连接的好信息。我的查询是一个插入语句,它查询和插入超过 100,000 条记录。所以在我的情况下,嵌套循环非常昂贵。

标签: sql oracle query-optimization sql-execution-plan


【解决方案1】:

原始执行计划”在 WIP.WIP_OPERATIONS_U1(索引)上有嵌套循环,这意味着我们对该索引进行了一些迭代,并且“新执行计划”建议删除该迭代。

在我看来,嵌套循环与散列连接相比成本更高。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多