J'ai une demande comme celle-ci
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
Lorsque j'exécute cette requête dans SSMS, j'obtiens un temps d'exécution de 953 ms, mais lorsque j'exécute cette requête à partir d'une requête Linq dans mon C #, j'obtiens un temps d'exécution de 1813 ms.
La requête Linq utilise le ".Net SqlClient Data Provider" et est émise contre EntityFramework (fichier EDMX). Est-ce que cela peut être un problème?
Quelqu'un sait-il pourquoi j'ai une grande différence entre les temps d'exécution de ces demandes qui sont les mêmes mais s'exécutent à partir d'un contexte différent par rapport à la même base de données?
J'ai vérifié tous les plans d'exécution des deux requêtes et ils utilisent le même index pour satisfaire leur requête respective.
Pour voir le plan d'exécution de la demande C #, j'utilise le profileur SQL pour intercepter l'événement Show Plan XML et je le compare à celui de SSMS et les deux sont les mêmes.