簡體   English   中英

預編譯視圖不影響性能

[英]pre-compiled view not affecting performance

編輯:

這個問題不是關於編譯的查詢,而是關於在編譯時生成EF數據庫視圖。

來自ADO.NET團隊博客: 探索ADO.NET實體框架的性能 - 第1部分

查看生成56% - 創建數據庫的抽象視圖的一個重要部分是為商店的本機語言中的查詢和更新提供實際視圖。 在此步驟中,將創建商店視圖。 好消息是有一種方法可以使視圖生成成為構建過程的一部分,這樣就可以在運行時避免這一步驟。


我的網絡應用程序中的第一個數據庫調用大約需要2.5秒,而后續相同的調用需要大約30毫秒。

我使用ADO.NET團隊博客中的T4模板生成了一個預編譯的視圖源文件,但它沒有發現任何可檢測的差異。

T4模板運行大約需要2.5秒,生成的代碼會編譯。

我錯過了什么?

修復!

從EntityViewContainer派生的生成視圖必須位於包含STO自跟蹤對象的程序集中,而不是包含edmx模型的程序集。

在構建之后,您首次調用應用程序,Web服務器將卸載應用程序,第一次調用“再次”啟動應用程序,以及與之關聯的所有內容。 這與預編譯的視圖無關。 因此,第一次調用將始終需要更長時間來加載應用程序。

順便說一下,生產服務器上也會發生同樣的事情。 空閑的工作池可能會卸載您的應用程序, 下一次調用將再次加載應用程序,執行時間比通常的請求要長得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM