Tôi đang sử dụng .NET framework 4.5.1 LINQ to SQL.Truy vấn đơn chậm hơn 3 truy vấn
Tôi có lớp sản phẩm này sử dụng mã đầu tiên:
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; }
}
tôi có khoảng 2500000 của những đối tượng trong cơ sở dữ liệu.
tiếp cận đầu tiên
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());
cách tiếp cận thứ hai
var query = db.Parts.Where(s => s.Manufacturer_Number == sstring
|| s.Part_Number == sstring || s.Title == sstring).ToList();
Phương pháp đầu tiên là nhanh hơn so với phương pháp thứ hai 100 lần. Bất cứ ai có thể giải thích điều này?
Bạn nên xem SQL được proqused bởi LINQ của bạn và sau đó kiểm tra kế hoạch thực hiện trong ManagmentStudio của bạn. Có thể là bạn có chỉ mục trên mỗi trường và các truy vấn đơn giản có thể sử dụng chúng nhưng không phải là chỉ mục cuối cùng của bạn. –
Tôi hy vọng anh ta có chỉ mục nếu bạn có 2,5 triệu bản ghi trong một bảng ... –
Chính xác bạn muốn đạt được điều gì ..? –