Sin animo de hacer grilla..es solo me gusta hacer comparaciones y me parecio buena idea tu propuesta asi que decidi hacer unas pruebitas, y bueno aqui se los comparto..
--
Me parecio excelente cuando tome ambas consultas y compare los planes estimados de execucion...
Me aparecio una mejora de 20 % vs 80% del EXISTS e IN respectivamente..
Pero ya viendolo bien.. la del EXISTS es una consulta diferente y por ende retorna resultados diferentes ...
Esta seria la consulta equivalente utilizando el EXISTS..
Código:
SELECT *
FROM MiTabla a
WHERE EXISTS (
SELECT MAX(ID)
FROM MiTabla b
GROUP BY FOLIO
HAVING MAX(ID) = a.id
)
Y asi ambos querys me generaron exactamente el mismo plan estimado de ejecucion..con el 50 - 50 % de tiempo para ambos casos..
En la practica, a mi me ha resultado indistinto tomar uno o el otro..
En fin..solo un comentario..
Saludos!