MiniProfiler是一款針對.NET, Ruby, Go and Node.js的性能分析的輕量級程式。可以對一個頁面本身,及該頁面通過直接引用、Ajax、Iframe形式通路的其它頁面進行監控,監控内容包括資料庫内容,并可以顯示資料庫通路的SQL(支援EF、EF CodeFirst等 )。并且以很友好的方式展現在頁面上。
MiniProfiler的一個特别有用的功能是它與資料庫架構的內建。除了.NET原生的 DbConnection類,MiniProfiler還内置了對實體架構(Entity Framework)以及LINQ to SQL、RavenDb和MongoDB的支援。任何執行的Step都會包括當時查詢的次數和所花費的時間。為了檢測常見的錯誤,如N+1反模式,profiler将檢測僅有參數值存在差異的多個查詢。
MiniProfiler是以Apache License V2.0協定釋出的,你可以在NuGet找到。
過去一直使用Sqlserver Profiler,但是發現實在是太痛苦了,你不得不進行建立、過濾、清除、關閉等操作,而且過濾篩選往往比較難以控制。後來發現MiniProfiler工具非常好用。
Demo開發環境
Win10
VS2013
準備工作
建立MVC項目WebAppEF,使用Northwind資料庫。
1、先安裝MiniProfiler

2、安裝MiniProfiler.MVC4
3、安裝MiniProfiler.EF
4、修改Global.asax檔案
我這裡隻需要在開發環境使用SQL性能監控,是以使用了#if DEBUG,因為生産環境,我們一般是采用release模式。同時,MiniProfiler還支援授權,這裡不做介紹。
5、在你的布局頁(_Layout)中,比如以下這種結構,修改_Layout.cshtml
分析:錯誤提示的大意是在試圖為DbConfiguration 執行個體加Loaded事件之前已經在其它地方使用了這個執行個體了
解決方案:把MiniProfiler.EF6.Initialize()在放在Database.SetInitializer<WebAppEF.Models.NorthwindEntities>(null); 之前。
分析:找不到MiniProfiler程式集或者它的依賴項。程式集定義和引用不比對。
解決方案:檢視Web.config中是否存在如下配置節點
如果不存在則添加,如果存在,則檢查MiniProfiler版本号和packages.config中的版本号是否一緻,如果不一緻就要對版本号進行修改。
參考:
<a href="http://www.cnblogs.com/shanyou/archive/2012/04/03/2430977.html" target="_blank">使用MiniProfiler調試ASP.NET MVC網站性能</a>
<a href="http://www.cnblogs.com/GuZhenYin/p/5408632.html" target="_blank">采用MiniProfiler監控EF與.NET MVC項目(Entity Framework 延伸系列1)</a>
本文轉自鄒瓊俊部落格園部落格,原文連結:http://www.cnblogs.com/jiekzou/p/6374726.html,如需轉載請自行聯系原作者