मैं .NET ढांचे का उपयोग कर रहा हूं 4.5.1 SQL से लिंक।एकल प्रश्न 3 प्रश्नों से धीमे
public class Part
{
public int PartID { get; set; }
[Required(ErrorMessage = "xxx")]
public string Title { get; set; }
[MaxLength(50)]
[Index(IsClustered = false, IsUnique = false,Order =1)]
public string Part_Number { get; set; }
[MaxLength(50)]
[Index(IsClustered = false, IsUnique = false, Order = 2)]
public string Manufacturer_Number { get; set; }
}
मैं डेटाबेस में उन संस्थाओं के लगभग 2500000 है:
मैं पहली बार कोड का उपयोग कर इस उत्पाद वर्ग की है।
पहले दृष्टिकोण
var query = db.Parts.Where(s => s.Manufacturer_Number == sstring).ToList();
query.AddRange(db.Parts.Where(s => s.Part_Number == sstring).ToList());
query.AddRange(db.Parts.Where(s => s.Title == sstring).ToList());
दूसरा दृष्टिकोण
var query = db.Parts.Where(s => s.Manufacturer_Number == sstring
|| s.Part_Number == sstring || s.Title == sstring).ToList();
पहले दृष्टिकोण 100 बार दूसरा दृष्टिकोण की तुलना में तेजी है। क्या कोई इसे समझा सकता है?
आपको एसक्यूएल को देखना चाहिए जो आपके linq द्वारा प्रोड्यूज़ किया गया है और फिर अपने ManagmentStudio में निष्पादन योजना की जांच करें। हो सकता है कि आपके पास प्रत्येक फ़ील्ड पर इंडेक्स हों और सरल प्रश्न उनका उपयोग कर सकें लेकिन आपका अंतिम नहीं। –
मुझे उम्मीद है कि यदि आपके पास तालिका में 2,5 एम रिकॉर्ड हैं तो उसके पास इंडेक्स हैं ... –
आप वास्तव में क्या हासिल करना चाहते हैं ..? @J37yvanEijk टिप्पणी के अनुसार –