我有很多复杂的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
我是平行提示的新手。提前感谢您的建议。
答案 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内核”。