Tôi có một trang đăng nhập thực hiện truy vấn EF rất đơn giản để xác định xem người dùng có hợp lệ hay không. Trong lần chạy đầu tiên, truy vấn này mất khoảng 6 giây để chạy. Trong lần chạy tiếp theo, phải mất ít hơn một giây.Làm cách nào để khởi tạo các truy vấn Khung thực thể để tăng tốc chúng?
Tôi đã xem một bài viết nói về việc sử dụng Application Auto-Start và câu hỏi của tôi là: Có cách nào để kích hoạt truy vấn này gây ra bất kỳ bộ nhớ đệm nào cần xảy ra mà không thực sự gọi truy vấn hay không. chỉ cần gọi truy vấn với một tập hợp các đối số giả?
EDIT: Khi tôi nói sáu giây, tôi đề cập đến thời gian cần để có được truy vấn. Mã trông giống như thế này (lưu ý trong trường hợp này ContactId là một int nullable và thiết lập để null):
return from contact in _context.Contacts
where contact.District == Environment.District &&
contact.ContactId == (contactID ?? contact.ContactId)
select contact;
Đây là một SQLServer 2008 và tôi đã chạy một hồ sơ để kiểm tra SQL và thời gian nó sẽ trả về là 41ms cho truy vấn cuối cùng được thực thi. Việc chậm trễ 6 hoặc 7 giây xảy ra trước khi truy vấn thậm chí đạt đến SQL mặc dù. Tôi đang cố gắng để thiết lập cái nhìn thoáng qua ngay bây giờ để xem nó có thể cho tôi biết thêm chi tiết về những thứ khác có thể xảy ra cùng một lúc hay không.
Tôi nghĩ rằng nó có thể là đáng giá để làm một số hồ sơ và cố gắng tìm ra nơi trì hoãn thực sự xảy ra. –
chi phí của EF khá nhẹ và có thể không phải là vấn đề. Có thể cài đặt một cái gì đó giống như Glimpse (NuGet gói) và xem những gì thực sự để đổ lỗi.Bạn có thể có các sự kiện khác xảy ra mà thực sự là lỗi (bootstrapped add-in?). –
@RobertHarvey Bạn có nghĩa là SQL profiling hoặc .NET profiling? – Mykroft