0
我一直在對正在處理的應用程序進行一些性能分析。該應用程序是基於Web(asp.net)在MSSQL Server(2005)上使用舊版本的NHibernate(1.0)。SQL事件探查器顯示nhibernate運行查詢兩次?
對應用程序運行分析器似乎顯示有點奇怪,因爲我們似乎是查詢對象兩次,一次是直接查詢並一次包裝在sp_executesql中。例如:
SELECT col1, col2 FROM TABLE exec sp_executesql N'SELECT col1, col2 FROM TABLE'
望着探查範圍內的統計數據我可以看到他們是截然不同的事件(選擇被記錄爲事件45 - SP:StmtCompleted事件,同時調用sp_executesql的記錄爲事件10 - RPC:已完成) 。
在此之前,我還沒有用過NHibernate,但我無法想象這是正常的行爲。我是不是誤解了剖面軌跡(在這種情況下我應該如何解釋上述內容),還是有充分的理由?
如果上述情況和我想的一樣糟糕,有沒有辦法切斷這種行爲?
謝謝
好的 - 爲了我的理解,爲什麼一個包裹在sp_executesql中,第二個不是? – Chris 2009-02-23 11:16:48