Risponderò alla mia domanda poiché è stato difficile trovare una risposta corretta e mi è stato indicato il problema dall'output del piano di esecuzione di SQL Server 2012. Come vedi nella domanda originale, tutto sembra a posto in superficie. Questo è SQL Server 2008.
Quando eseguo la stessa query nel 2012, ho ricevuto un avviso su CHARINDEX interrogazione. Il problema è che SQL Server ha dovuto eseguire la conversione del tipo. Address1 è VarChar e la query ha N'1124' che è Unicode o NVarChar . Se cambio questa query in questo modo:
SELECT *
FROM LOCAddress
WHERE (CAST(CHARINDEX(LOWER('1124'), LOWER([Address1])) AS int))
Quindi funziona come LIKE interrogazione. Quindi, la conversione del tipo causata dal generatore di Entity Framework stava causando questo orribile successo nelle prestazioni.