A junção à esquerda parece ser mais rápida porque o SQL é forçado a fazer a seleção menor primeiro e, em seguida, a junção a esse conjunto menor de registros. Por alguma razão, o otimizador não quer fazer isso naturalmente.
3 maneiras de forçar as junções a acontecerem na ordem correta:
- Selecione o primeiro subconjunto de dados em uma tabela temporária (ou variável de tabela) e junte-se a ele
- Use junções à esquerda (e lembre-se de que isso pode retornar dados diferentes porque é uma junção à esquerda e não uma junção interna)
- use a palavra-chave FORCE ORDER. Observe que, se os tamanhos ou esquemas de tabela forem alterados, o plano de consulta pode não estar correto (consulte https://dba.stackexchange.com/questions/45388/forcing-join-order )