मैं सोच रहा था एक गतिशील मान के साथ एसक्यूएल में एक प्रश्न बनाने के लिए सर्वोत्तम प्रथाओं थे क्या के लिए प्रदर्शन, मान लीजिए कि मैं एक मूल्य (nvarchar (अधिकतम))एसक्यूएल सर्वर और गतिशील खोजें
मूल्य है: "912,345,678 "
select * from AllData
where Number like '%912345678%'
मूल्य:" माइकल "
select * from AllData
where Name like '%Michael%'
मूल्य: "स्ट्रीट नंबर 10"
select * from AllData
where Address like '%Street number 10%'
यह approuches 9 अंक है कि इस
select * from AllData
where Number like '912345678'
मैं करने के लिए एक edmx का उपयोग जैसे% के बिना तेजी से होगा एक नंबर के लिए खोज के बाद से थोड़ा धीमा कर रहे हैं सी # में बाहरी डेटाबेस से कनेक्शन बनायें, इस तरह:
var Result = EDMXEntity.Entities.Where(x =>
(SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Name.ToString().ToLower()) > 0)
|| (SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Number.ToString().ToLower()) > 0)
|| (SqlFunctions.PatIndex("%" + Value.ToLower() +"%", x.Address.ToString().ToLower()) > 0)).Take(50).ToList();
मैं प्रदर्शन कैसे बढ़ा सकता हूं?
आपकी सभी स्थितियां एक जैसी हैं। 'SqlFunctions.PatIndex ("% "+ उदाहरण.ToLower() +"% ", x.Name.ToString()। ToLower())> 0) ' – Amit
' ऑलडाटा से * चुनें * जहां '912345678' 'की संख्या बराबर है 'ऑलडाटा से चुनें * जहां संख्या =' 9 12345678 '' तो यह हमेशा तेज़ रहेगा। – Max
@ क्षमा करें मेरी बुराई, मैंने शर्तों को अद्यतन किया है। – BrunoMartinsPro