¿Por qué 'HASH JOIN' o 'LOOP JOIN' mejoran este proceso almacenado?

Tengo una consulta básica que va de 6 segundos a 1 segundo con solo cambiar una combinación deLEFT JOIN aLEFT HASH JOIN o 'IZQUIERDA LOOP IZQUIERDA'. ¿Alguien puede explicar por qué esto causaría un aumento tan grande en el rendimiento y por qué el optimizador de SQL no lo está resolviendo por sí mismo?

Aquí es aproximadamente cómo se ve el SQL:

SELECT
   a.[ID]
FROM
   [TableA] a
LEFT HASH JOIN
   [TableB] b
   ON b.[ID] = a.[TableB_ID]
JOIN
   [TableC] c
   ON c.[ID] = a.[TableC_ID]
WHERE
   a.[SomeDate] IS NULL AND
   a.[SomeStatus] IN ('X', 'Y', 'Z') AND
   c.[SomethingElse] = 'ABC'

Las tablas A y B tienen millones de registros e índices en todos los campos de ID. Utilizando SQL Server 2005.

Editar: Un colega sugirió un IZQUIERDA DE LOOP IZQUIERDA y parece que lo hizo aún más rápido ... SQL no es una de mis fortalezas, así que estoy tratando de entender cómo están ayudando estos "consejos".

Respuestas a la pregunta(1)

Su respuesta a la pregunta