2012-01-13 144 views
3

我正在分析我的應用程序(分析 - >啓動性能嚮導...),並且正在查看顯示應用程序在數據庫調用上花費多長時間的層交互視圖。爲什麼這麼多sp_procedure_params_100_managed調用?

我有一個行表示:

[myDb].[sys].[sp_procedure_params_100_managed] 

稱爲73倍。

發生了什麼事?

+0

它會出現的參數沒有被高速緩存,在此基礎上[問題](http://stackoverflow.com/questions/704794/enterprise-library-caching-parameters-on-stored-procs ) – billinkc 2012-01-13 21:48:09

+0

@billinkc - 我會採取一個高峯。 – 2012-01-13 21:53:40

回答

3

這聽起來像你正在使用企業框架,這聽起來像EF正在的一大堆「DiscoverParameters()」呼叫:

Enterprise library caching parameters on stored procs?

這裏是一個可能的解決方法(從上面的鏈接) :

http://davidhayden.com/blog/dave/archive/2006/11/03/CachingStoredProcedureParameters.aspx

+0

雖然我沒有使用entlib,但是我會看看鏈接,謝謝 – 2012-01-13 21:54:41

+0

看起來我需要使用SqlCommandBuilder.DeriveParameters來執行代碼; – 2012-01-13 22:00:59

+0

davidhayen.com鏈接已損壞。 archive.org:https://web.archive.org/web/20070210091538/http://davidhayden.com/blog/dave/archive/2006/11/03/CachingStoredProcedureParameters.aspx – hectorct 2014-05-23 11:46:41