Oracle可以在子查询中使用并行提示吗?

时间:2015-06-09 13:15:52

标签: oracle performance parallel-processing

我有很多复杂的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

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

1 个答案:

答案 0 :(得分:1)

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

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

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