我们使用EF和在很大程度提高了开发速度,不过随之带来的是很多性能低下的写法和生成不太高效的sql。
虽然我们可以使用SQL Server Profiler来监控执行的sql,不过个人觉得实属麻烦,每次需要打开、过滤、清除、关闭。
MiniProfiler此时就派上用场了,这是Stack Overflow团队设计的一款对ASP.NET MVC的性能分析的小程序。可以对一个页面本身,及该页面通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL(支持EF、EF CodeFirst等 )。并且以很友好的方式展现在页面上。
官方文档: https://miniprofiler.com/dotnet/AspDotNetCore
1、添加包 MiniProfiler.AspNetCore.Mvc 和 MiniProfiler.EntityFrameworkCore
2、在 Startup.cs 中的 ConfigureServices 下添加,也可以根据官方文档中的说明进行相应的配置
1 | services.AddMiniProfiler().AddEntityFramework(); |
3、在 Startup.cs 中的 Configure 下添加
1 | app.UseMiniProfiler(); |
4、修改 _ViewImports.cshtml
1 | @using StackExchange.Profiling |
5、将MiniProfiler添加到布局文件(Shared/_Layout.cshtml)中
1 | <mini-profiler /> |
完成~