Tengo una consulta sql con muy mal rendimiento. Lo rastreé hasta el INNER JOIN realizado en la mesa. El cambio de este a izquierda unirse aumenta significativamente el rendimiento (de 6 min 20 seg) - ahora sé que el 2 no están equiv, pero ... aquí es lo que estoy pidiendoSQL interno vs pregunta de combinación izquierda
SELECT *
FROM SomeTable ST
JOIN BigTable BT ON BT.SomeID = ST.SomeID
AND BT.Something = ST.Something
AND BT.AnotherValue = '123'
Dado que la unión tiene criterios adicionales (y algo = algo) - está cambiando esto a una combinación izquierda produciendo los mismos resultados - ¿pero MUCHO más rápido?
Los resultados devueltos son los mismos utilizando IZQUIERDA/interior con izquierda siendo significativamente más rápido ...
Esto es extraño, ya que en la mayoría de los casos 'INNER JOIN' tiene mejor rendimiento. Un 'OUTER JOIN' debe devolver filas incluso cuando no coincida. ¿Estás seguro de que no hay más en esto que el tipo de unión? – Yuck
YUP, estoy confundido como siempre - las lecturas lógicas se reducen en millones (muchos millones) – user822150
¿puede publicar planes de ejecución para ambos? – Thilo