這是使用流利NHibernateNHibernate花費很長時間來運行查詢
我有一個NHibernate查找是從一個表中檢索數據。如果我採用生成的sql並通過查詢分析器運行,它需要~18ms運行。
使用NHProfiler,我得到這個查詢的持續時間〜1800毫秒 - 比sql長100倍!
Query duration
- Database only:1800ms
- Total: 1806ms
正被填充的對象包含一個子類,但是這個孩子正在從NHibernate的第二級高速緩存
正在被返回的被尋呼的數據(50查詢)加載雖然作爲遠據我所知,這應該沒有什麼區別
我也有計數運行,並且再次,這是根據NHProfiler在查詢分析儀和約1800毫秒〜4ms。
NH Profiler是否顯示查詢執行時間或完成檢索時間,映射類並構造對象圖?如果它是前者 - 爲什麼它比直接運行查詢花費的時間更長?
編輯:剛剛發現這個帖子由Ayende關於NH探查給出的查詢持續時間值:http://ayende.com/Blog/archive/2009/06/28/nh-prof-query-duration.aspx - 所以它肯定是花了很長時間的數據庫查詢
ADO.NET需要多長時間? – 2010-02-16 13:41:27
當你用像螞蟻或dottrace這樣的剖析器來剖析代碼時,主要的瓶頸是什麼? – Paco 2010-02-16 14:51:37
使用ADO.NET只需要NHibernate的一小部分時間。 我目前還沒有安裝任何性能分析軟件,所以我只是要去分類並看看它說什麼 – 2010-02-16 15:03:52