天天看點

MiniProfiler工具介紹

   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

MiniProfiler工具介紹

2、安裝MiniProfiler.MVC4

MiniProfiler工具介紹

3、安裝MiniProfiler.EF

MiniProfiler工具介紹

4、修改Global.asax檔案

我這裡隻需要在開發環境使用SQL性能監控,是以使用了#if DEBUG,因為生産環境,我們一般是采用release模式。同時,MiniProfiler還支援授權,這裡不做介紹。

MiniProfiler工具介紹
MiniProfiler工具介紹

5、在你的布局頁(_Layout)中,比如以下這種結構,修改_Layout.cshtml

MiniProfiler工具介紹
MiniProfiler工具介紹
MiniProfiler工具介紹
MiniProfiler工具介紹
MiniProfiler工具介紹
MiniProfiler工具介紹
MiniProfiler工具介紹
MiniProfiler工具介紹
MiniProfiler工具介紹
MiniProfiler工具介紹
MiniProfiler工具介紹

分析:錯誤提示的大意是在試圖為DbConfiguration 執行個體加Loaded事件之前已經在其它地方使用了這個執行個體了

解決方案:把MiniProfiler.EF6.Initialize()在放在Database.SetInitializer<WebAppEF.Models.NorthwindEntities>(null); 之前。

MiniProfiler工具介紹

分析:找不到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,如需轉載請自行聯系原作者