我有一個ASP.NET MVC 5網絡應用程序,並使用EF 6.1來訪問我的數據庫。
我有一些相當複雜的LINQ查詢需要10s來編譯,但隨後在幾毫秒內執行。 EF會緩存這些查詢,並在第二次執行查詢時在幾毫秒內返回。
但是這個緩存並沒有被保存,所以每個應用程序都重新啓動,需要重新編譯這個查詢,這又需要10秒鐘。堅持實體框架查詢緩存
有沒有辦法堅持這個查詢緩存,以便它在應用程序重新啓動?
我有一個ASP.NET MVC 5網絡應用程序,並使用EF 6.1來訪問我的數據庫。
我有一些相當複雜的LINQ查詢需要10s來編譯,但隨後在幾毫秒內執行。 EF會緩存這些查詢,並在第二次執行查詢時在幾毫秒內返回。
但是這個緩存並沒有被保存,所以每個應用程序都重新啓動,需要重新編譯這個查詢,這又需要10秒鐘。堅持實體框架查詢緩存
有沒有辦法堅持這個查詢緩存,以便它在應用程序重新啓動?
http://www.fusonic.net/zh/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/ – 2014-09-27 21:36:39
感謝您的鏈接,但我已經做大部分這一點,它不處理查詢緩存,但只處理模型緩存...... – ChrFin 2014-09-28 07:56:13
查詢緩存是QueryCacheManager中的一個Dictionary。 我嘗試使用反射來保存它,但由於QueryCacheKey和QueryCacheEntry未公開,並且未標記爲可序列化,因此這是不可能的。 保存/加載查詢計劃緩存將是一個非常有用的功能,所以你應該在http://entityframework.codeplex.com/workitem/list/advanced上創建一個問題 –
2014-11-21 12:23:47