2012-10-02 65 views
3

從EF獲取SQL查詢的最有效方法是什麼?我需要這個,所以我可以運行查詢分析並找到它的執行計劃。獲取從LINQ到EF查詢的SQL字符串

我知道我可以將分析器連接到SQL服務器,但是這一步對於生產力是一種痛苦和巨大打擊,幾乎足以放棄ORM。

有更好,更有效的方法來優化EF查詢嗎?

回答

2

有更好,更有效的方法來優化EF查詢嗎?

是的,購買EF ProfilerHuagati Profiler。或者使用EF Provider wrapper進行跟蹤。

我知道我能勾探查到SQL服務器,但是這一步是一個痛苦和 一個巨大的打擊生產力,差不多夠放棄ORM 乾脆。

分析器只是故事的一半。還有數據庫引擎優化顧問,如果你真的想優化SQL查詢,這些工具是主要的工具集 - 但優化你沒有控制的SQL查詢是非常困難的,有時是不可能的。

+0

可以LinqPad做到這一點嗎?這是我們已有的工具。 – Alwyn

+0

如果我沒有記錯,LINQPad可以顯示實體LINQ查詢生成的SQL。 –

3

如果您將IQueryable轉換爲ObjectQuery,則可以使用ToTraceString()方法查看SQL查詢。

+0

沒有意識到你可以把它放下來,很好的信息。但我正在尋找一個可以做到這一點的應用程序。 – Alwyn

+0

@Alwyn - 對不起,我有一個壞習慣,沒有閱讀完整的問題。 –

+0

不要擔心這是我的錯,因爲不夠具體。給你一個大拇指,很好的答案。 – Alwyn