Imagem de fundo

Um desenvolvedor precisa listar todos os Funcionarios que não possuem nenhum Dependente...

Um desenvolvedor precisa listar todos os Funcionarios que não possuem nenhum Dependente cadastrado. Ele considera duas abordagens: uma usando NOT EXISTS e outra usando LEFT JOIN / IS NULL. Do ponto de vista de desempenho em um SGBD relacional, qual abordagem é geralmente considerada mais eficiente e por quê?


A

LEFT JOIN / IS NULL, porque junções são sempre mais rápidas que subconsultas.


B

NOT EXISTS, porque a subconsulta pode ser anti-join usando o índice da chave estrangeira em Dependentes.


C

NOT IN, porque é a sintaxe mais simples e direta para esta necessidade.


D

FULL OUTER JOIN, porque verifica a ausência de dados em ambas as tabelas.


E

Ambas têm desempenho idêntico, pois o otimizador as converte para o mesmo plano.