4
我有一個Linq查詢我運行Linqpad對EF5,它運行約10秒。當我將該語句生成的SQL複製到SMS中時,它在不到2秒的時間內運行。Linqpad性能vs Sql管理工作室
顯然,EF比直接SQL增加了更多的處理開銷,並且LinqPad在我的電腦中運行,而不是在服務器上運行。所以我預計它會慢一點。
但有沒有什麼方法可以跟蹤查詢的Linqpad和EF執行步驟,以便我可以確定瓶頸?
謝謝!
我有一個Linq查詢我運行Linqpad對EF5,它運行約10秒。當我將該語句生成的SQL複製到SMS中時,它在不到2秒的時間內運行。Linqpad性能vs Sql管理工作室
顯然,EF比直接SQL增加了更多的處理開銷,並且LinqPad在我的電腦中運行,而不是在服務器上運行。所以我預計它會慢一點。
但有沒有什麼方法可以跟蹤查詢的Linqpad和EF執行步驟,以便我可以確定瓶頸?
謝謝!
您可以使用trial version of Ants Profiler並將linqpad代碼移動到某個測試控制檯應用程序。
您的SQL查詢比LINQ更快,因爲LINQ查詢生成是一個昂貴的過程。要進行公平比較,請嘗試compile the LINQ query並將第二次運行與純SQL進行比較。 LINQ仍然會比較慢(LINQ做的不僅僅是執行查詢),但差異應該小得多。
如果從Linqpad內部運行生成的SQL,會發生什麼情況? – sgmoore
您確定您創建的LINQ與查詢完全相同嗎?這聽起來像你可能會在使用LINQ時錯過索引的方式進行查詢。 –
嗨@sgmoore,skeej似乎沒有迴應,但我可以重新創建這個,並發現使用由linq生成的sql到sql運行很快,但linqpad本身在linqpad中運行緩慢。它不會說,只是繼續說執行。它正在使用一個視圖,所以我想知道這是否會影響它。 –