Imagem de fundo

Um desenvolvedor precisa listar todos os Funcionarios que...

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.