Desafio: Cadê meu Join?

Dessa vez apresento um desafio curioso que recebi esses dias enquanto estava no escritório. Uma pessoa me apresentou uma consulta SQL que relacionava os dados de cliente com os endereços.

SELECT

c.*FROM Clientes c LEFT OUTERJOIN Regioes r

ON c.regiaoId = r.regiaoId AND

r.regiaoId ISNULL

O interessante é que o plano de execução gerada não possui JOIN entre tabelas. Surge a pergunta: CADÊ MEU JOIN???

image

O problema fica mais interessante quando substituimos o LEFT OUTER JOIN por um INNER JOIN, pois o plano de execução não apresenta a leitura em nenhuma tabela.

SELECT

c.*FROM Clientes c INNERJOIN Regioes r

ON c.regiaoId = r.regiaoId AND

r

.regiaoId ISNULL

image

A pergunta desse Desafio Ninja é:

O que aconteceu com o Join de tabela e com a operação de Table Scan?

Poste sua opinião e resposta na seção de comentários.