正解を見つけるのが難しく、SQL Server 2012 実行計画の出力で問題を指摘されたので、私は自分の質問に答えます。元の質問でわかるように、表面上はすべて問題ないように見えます。これは SQL Server 2008 です。
2012年に同じクエリを実行すると、 CHARINDEX
で警告が表示されました クエリ。問題は - SQL Server が型変換をしなければならなかったことです。 住所1
VarChar
です クエリには Unicode または NVarChar
である N'1124' があります .このクエリを次のように変更すると:
SELECT * FROM LOCAddress WHERE (CAST(CHARINDEX(LOWER('1124'), LOWER([Address1])) AS int)) コード> プレ>
LIKE
と同じように実行されます クエリ。そのため、Entity Framework ジェネレーターによって引き起こされた型変換が、この恐ろしいパフォーマンスの低下を引き起こしていました。