ฉันมีคำขอเช่นนี้
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 ฉันได้รับเวลาดำเนินการ 953ms แต่เมื่อฉันเรียกใช้แบบสอบถามนี้จากแบบสอบถาม Linq ใน C # ของฉันฉันได้รับเวลาดำเนินการ 1813ms
The Linq Query ใช้ ".Net SqlClient Data Provider" และใช้กับ EntityFramework (ไฟล์ EDMX) นี่อาจเป็นปัญหาหรือไม่?
ไม่มีใครรู้ว่าทำไมฉันถึงมีความแตกต่างอย่างมากระหว่างเวลาดำเนินการของคำขอเหล่านั้นที่เหมือนกัน แต่ดำเนินการจากบริบทที่แตกต่างกับฐานข้อมูลเดียวกัน
ฉันตรวจสอบแผนการดำเนินการทั้งหมดของคำขอทั้งสองและพวกเขาใช้ดัชนีเดียวกันเพื่อตอบคำถามของพวกเขา
หากต้องการดูแผนการดำเนินการของคำขอ C # ฉันใช้ SQL profiler เพื่อดักจับเหตุการณ์ Show Plan XML และเปรียบเทียบกับหนึ่งใน SSMS และทั้งคู่เหมือนกัน