Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Filtro de consulta Oracle SQL em JOIN ON vs WHERE


Não deve haver diferença. O otimizador deve gerar o mesmo plano em ambos os casos e deve ser capaz de aplicar o predicado antes, depois ou durante a junção em ambos os casos com base na abordagem mais eficiente para essa consulta específica.

Claro, o fato de que o otimizador pode fazer algo, em geral, não é garantia de que o otimizador fará realmente fazer algo em uma consulta específica. À medida que as consultas se tornam mais complicadas, torna-se impossível considerar exaustivamente todos os planos de consulta possíveis, o que significa que, mesmo com informações e códigos perfeitos, o otimizador pode não ter tempo para fazer tudo o que você gostaria que fizesse. Você precisaria dar uma olhada nos planos reais gerados para as duas consultas para ver se eles são realmente idênticos.