O plano de execução escolhido pelo otimizador escolhido pode variar muito mesmo entre dois ambientes da mesma versão, não apenas 11g e 12c. Depende de muitos fatores, mas principalmente:
- Número de linhas na tabela (são semelhantes entre os envs?)
- Quais índices estão presentes (os dois bancos de dados têm exatamente os mesmos índices?)
- Existem estatísticas para a tabela e os índices, e quão atualizados eles estão? Se não estiver atualizado, reúna as estatísticas das tabelas e os índices.
Se você puder postar esses detalhes, posso fornecer uma resposta mais útil.
Além disso, o código parece gerado automaticamente, se você tiver liberdade para modificá-lo, com base nos detalhes, podemos sugerir uma consulta e/ou dicas reescritas.
Se você não puder modificar o código, poderá forçar um plano com o SQL Plan Management (SPM) - exporte do banco de dados onde ele é executado mais rapidamente e importe para o outro banco de dados.
ATUALIZAÇÃO
Use esta versão simplificada do SQL para gerar o plano:
SELECT * FROM DMProgDate_00001
WHERE ProgressOID IN (
SELECT OID FROM DMProgress_00001
WHERE Project = 'Moho'
AND Phase = 'Procurement'
AND Displine = 'Q340'
AND ROWNUM <= 20
ORDER BY actCode
);