A Oralce fornece uma dica paralela para situações como essa em que você tem uma varredura completa de tabela ou problema semelhante e deseja usar vários núcleos para dividir a carga de trabalho. Mais detalhes aqui .
A sintaxe é bem simples, você especifica a tabela (ou alias) e o número de núcleos (geralmente deixo como padrão) ex.:
select /*+ parallel(a, default) */ *
from table_a a
Você também pode usar isso com várias tabelas, por exemplo.
select /*+ parallel(a, default) parallel(b,default) */ *
from table_a a, table_b b
where a.some_id = b.some_id