मैं अपने स्वयं के प्रश्न का उत्तर दूंगा क्योंकि सही उत्तर खोजना कठिन था और मुझे SQL सर्वर 2012 निष्पादन योजना आउटपुट द्वारा समस्या की ओर इशारा किया गया था। जैसा कि आप मूल प्रश्न में देखते हैं - सतह पर सब कुछ ठीक दिखता है। यह SQL सर्वर 2008 है।
जब मैं 2012 को एक ही क्वेरी चलाता हूं तो मुझे CHARINDEX
. पर चेतावनी मिली सवाल। समस्या यह है कि - SQL सर्वर को टाइप रूपांतरण करना था। Address1
VarChar
है और क्वेरी में N'1124' है जो यूनिकोड या NVarChar
. है . अगर मैं इस क्वेरी को इस तरह बदलता हूं:
SELECT *
FROM LOCAddress
WHERE (CAST(CHARINDEX(LOWER('1124'), LOWER([Address1])) AS int))
इसके बाद यह LIKE
. के समान चलता है सवाल। तो, एंटिटी फ्रेमवर्क जेनरेटर के कारण होने वाला रूपांतरण टाइप करें जिससे प्रदर्शन में यह भयानक हिट हो रही थी।