У мене є такий запит
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
Коли я запускаю цей запит у SSMS, я отримую час виконання 953 мс, але коли я запускаю цей запит із запиту Linq у своєму C #, я отримую час виконання 1813 мс.
Запит Linq використовує ".Net SqlClient Provider Data Provider" і видається проти EntityFramework (файл EDMX). Чи це може бути проблемою?
Хтось знає, чому у мене велика різниця між часом виконання тих запитів, які однакові, але виконуються з іншого контексту проти однієї бази даних?
Я перевірив усі плани виконання обох запитів, і вони використовують один і той же індекс, щоб задовольнити відповідний запит.
Щоб побачити план виконання запиту C #, я використовую SQL-провідник, щоб захопити подію Show Plan XML і порівняти його з одним із SSMS, і обидва вони однакові.