2010-10-22 55 views
4

我已經閱讀了關於EF中的預生成視圖的相當數量,但不確定哪些場景你不會使用它。我的理解是,只需要在您的項目中進行一些設置,這是唯一的打擊。因此,您將首先獲得查詢的性能改進,實質上是免費的。何時使用實體框架預先生成的視圖

如果是這種情況,您爲什麼不直接在每個EF項目中使用它?

由於

回答

3

從MSDN:

http://blogs.msdn.com/b/dmcat/archive/2010/04/21/isolating-performance-with-precompiled-pre-generated-views-in-the-entity-framework-4.aspx

由於查詢的第一次執行是在性能增益,利用預先生成的視圖在至少兩種情況將是顯着的價值:系統的熱身和執行不經常運行的查詢。使用較少的內存也是有利的,並且不再有保持和創建視圖的開銷。

預編譯的意見提高查詢性能首次他們正在運行。隨後的執行沒有得到改善,因爲查詢被編譯。這意味着預編譯任何給定查詢的好處取決於執行時間和執行頻率。

+0

感謝Dave的回覆,這篇文章有點混淆,因爲它交換了預先生成的視圖和預編譯的查詢。我很高興我瞭解編譯查詢的優點和缺點,但我仍然不確定是否能夠獲得預生成的視圖。 – 2010-10-22 13:31:36

+0

我認爲預編譯的視圖和查詢是一回事。這些術語似乎可以互換使用。 – 2010-10-22 13:54:16

+0

我非常肯定他們不同,但他們被稱爲預生成視圖和預編譯查詢。前者是EF需要訪問數據庫的內容。後者特定於查詢。 – 2010-10-22 14:06:01