Ho una richiesta come questa
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
Quando eseguo questa query in SSMS ottengo un tempo di esecuzione di 953 ms, ma quando eseguo questa query da una query Linq nel mio C # ottengo un tempo di esecuzione di 1813 ms.
La query Linq utilizza il ".Net SqlClient Data Provider" e viene emessa su EntityFramework (file EDMX). Questo può essere un problema?
Qualcuno sa perché ho una grande differenza tra i tempi di esecuzione di quelle richieste che sono uguali ma eseguite da un contesto diverso rispetto allo stesso database?
Ho verificato tutti i piani di esecuzione di entrambe le richieste e utilizzano lo stesso indice per soddisfare le rispettive query.
Per vedere il piano di esecuzione della richiesta C # uso il profiler SQL per intercettare l'evento Show Plan XML e lo confronto con quello di SSMS ed entrambi sono uguali.