Ich habe eine Anfrage wie diese
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
Wenn ich diese Abfrage in SSMS ausführe, erhalte ich eine Ausführungszeit von 953 ms, aber wenn ich diese Abfrage von einer Linq-Abfrage in meinem C # ausführe, erhalte ich eine Ausführungszeit von 1813 ms.
Die Linq-Abfrage verwendet den ".Net SqlClient Data Provider" und wird gegen EntityFramework (EDMX-Datei) ausgegeben. Kann das ein Problem sein?
Weiß jemand, warum ich einen großen Unterschied zwischen den Ausführungszeiten der Anforderungen habe, die gleich sind, aber aus verschiedenen Kontexten für dieselbe Datenbank ausgeführt werden?
Ich habe alle Ausführungspläne beider Anforderungen überprüft und sie verwenden denselben Index, um ihre jeweilige Abfrage zu erfüllen.
Um den Ausführungsplan der C # -Anforderung anzuzeigen, verwende ich den SQL-Profiler, um das Show Plan XML-Ereignis abzufangen, und vergleiche es mit dem von SSMS, und beide sind gleich.