Por que o 'HASH JOIN' ou o 'LOOP JOIN' aprimora esse procedimento armazenado?

Eu tenho uma consulta básica que vai de 6 segundos a 1 segundo apenas alterando uma junção deLEFT JOIN paraLEFT HASH JOIN ou 'LEFT LOOP JOIN'. Alguém pode explicar por que isso causaria um aumento tão grande no desempenho e por que o otimizador do SQL não está descobrindo por conta própria?

Aqui está aproximadamente o que o SQL se parece:

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'

A tabela A e B tem milhões de registros e índices em todos os campos de ID. Usando o SQL Server 2005.

Editar: Um colega sugeriu um LEFT LOOP JOIN e parece ter sido ainda mais rápido ... O SQL não é um dos meus pontos fortes, então estou tentando entender como essas 'dicas' estão ajudando.

questionAnswers(1)

yourAnswerToTheQuestion