【问题标题】:Oracle can I use parallel hint in subquery?Oracle 我可以在子查询中使用并行提示吗?
【发布时间】:2015-08-24 08:00:54
【问题描述】:

我有很多复杂的 select 语句要运行,至少需要 2 个小时,我想加快查询速度。 我可以在子查询和主查询中使用并行提示来提高性能吗? 例如,以下是否有效?

select /*+ parallel(32) */
    a.id,
    (select /*+ parallel(32) */ b.col1 from table b where b.id = a.id)
from 
(select /*+ parallel(32) */ c.id, c.col2 
 from table c) a

我是平行提示的新手。提前感谢您的建议。

【问题讨论】:

  • 有什么意义?检查执行计划以获取在顶层有并行提示的查询。

标签: oracle performance parallel-processing


【解决方案1】:

该子查询返回单行。您可能不希望它并行运行,但您可能会发现使用传统连接可以为查询提供更好的并行性。

select /*+ parallel(32) */
       c.id,
       b.col1
from   table c left join
       table b on b.id = c.id

请记住,在这种情况下,您的最大有效并行度可能会受到您的 i/o 带宽的限制,而不是通常使用的“2 x 核心”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-19
    • 2011-05-12
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多