Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exercicio Funcionários demitidos

Percebo que o professor tem a pratica de usar join na subquery, conforme abaixo

DELETE FROM TAB_DEPENDENTE TD WHERE
TD.COD_FUNCIONARIO IN (
SELECT TD.COD_FUNCIONARIO FROM TAB_DEPENDENTE TD INNER JOIN TAB_RH_DEMITIDOS TRD
ON TD.COD_FUNCIONARIO = TRD.COD_FUNCIONARIO);

Mesmo havendo a opção de usar uma query menor e mais simples, como essa:

DELETE FROM TAB_DEPENDENTE D 
WHERE D.COD_FUNCIONARIO IN (SELECT RH.COD_FUNCIONARIO FROM TAB_RH_DEMITIDOS RH);

Há algum ganho de performance nesse join ou é uma boa pratica?

2 respostas
solução!

Oi Ceilton, tudo bem?

Na maioria dos SGBDs, não há ganho de performance significativo ao usar um JOIN dentro da subquery em comparação com uma simples subquery IN. O plano de execução é semelhante para ambos.

Mas, a performance pode variar dependendo do tamanho das tabelas e dos índices disponíveis. Em tabelas muito grandes, um JOIN pode, em alguns casos, ser mais eficiente, mas isso não é uma regra geral.

Portanto, não há uma regra rígida que diga que um método é sempre melhor que o outro. Muitas vezes, a escolha entre um JOIN e uma subquery simples pode se resumir à preferência pessoal ou ao padrão de codificação da equipe.

Espero ter esclarecido.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Obrigado Monalisa.