GARANTIR DESCONTO

Fórum Sub Select vs Join #571450

23/11/2016

0

Qual é o mais pesado?

SELECT a.* FROM TableA a
WHERE a.status = 1
AND (SELECT b.id FROM TableB b WHERE b.id = a.id AND b.status = 1) = 1


ou

SELECT a.* FROM TableA a
WHERE a.status = 1
LEFT JOIN TableB b
WHERE b.id = a.id AND b.status = 1
Marcus Holloways

Marcus Holloways

Responder

Post mais votado

23/11/2016

Marcus, isso não é uma regra, porque depende muito do tamanho das tabelas, indíces criados, etc... mas normalmente JOIN é mais lento que SUB SELECT.
Tanto que só se usa JOIN se você precisar retornar os campos de 2 ou mais tabelas.
Se não, se recomenda usar o SUB SELECT.

Grande abraço

Luiz Santos

Luiz Santos
Responder

Gostei + 1

Mais Posts

23/11/2016

Alec Candia

Nesse teu exemplo, o JOIN.

Mas, como disse o Luiz Santos, depende do tamanho e critérios de filtragem e índice do SUB SELECT. Se for usado critérios demais numa cláusula WHERE por exemplo, além do tamanho da tabela e a quantidade de campos retornadas, pode ser mais em conta usar um JOIN.
Responder

Gostei + 1

24/11/2016

Marcus Holloways

Entendi pessoal.

Obrigado pelas respostas :D
Responder

Gostei + 0

24/11/2016

Fabio Parreira

Execute sua consulta com CTRL + L, e verifique o plano estimado de execução, nele você pode medir a performance e definir qual teve melhor desempenho.

Eu particularmente utilizo mais os joins. Sub-select mal aplicado pode acabar comprometendo a sua performance, então ao usá-lo tenha muito cuidado, mas como já foi dito anteriormente, cada caso é uma caso diferente.

Abraços.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar