Tôi có một yêu cầu như thế này
SELECT
[EstimateId],
[CreationUserId],
[EstimateStatusValueId],
[LanguageId],
[LocationId],
[EstimatorUserId],
[FilterUnitSystemTypeId],
[EstimateNumber],
[RevisionNumber],
[CreationDate],
[ModificationDate],
[ProjectDescription],
[IsBsdq],
[ClosingDate],
[ClosingTime],
[ClosingUpdatedOn],
[DeadLineDate],
[IsReceived],
[Inclusion],
[Exclusion],
[Misc],
[Note],
[WorkDeadLines],
[Comments],
[Validity],
[PlansLocation],
[PlansReceivedFrom],
[Price]
FROM [Estimate].[Estimates]
ORDER BY [ClosingDate] ASC, [ClosingTime] ASC
Khi tôi chạy truy vấn này trong SSMS, tôi nhận được thời gian thực hiện là 953ms, nhưng khi tôi chạy truy vấn này từ Truy vấn Linq trong C # của tôi, tôi nhận được thời gian thực hiện là 1813ms.
Truy vấn Linq sử dụng ".Net SqlClient Data Carrier" và được cấp cho EntityFramework (tệp EDMX). Đây có phải là một vấn đề?
Có ai biết tại sao tôi có một sự khác biệt lớn giữa thời gian thực hiện của các yêu cầu đó giống nhau nhưng thực hiện từ bối cảnh khác nhau đối với cùng một cơ sở dữ liệu không?
Tôi đã xác minh tất cả các kế hoạch thực hiện của cả hai yêu cầu và họ sử dụng cùng một chỉ mục để đáp ứng truy vấn tương ứng của họ.
Để xem kế hoạch thực hiện của yêu cầu C #, tôi sử dụng trình lược tả SQL để bẫy sự kiện Show Plan XML và tôi so sánh nó với một trong SSMS và cả hai đều giống nhau.