诊断ASP.NET中的数据库调用数

时间:2012-02-14 21:56:04

标签: asp.net optimization webforms

我有一个缓慢加载的ASP.NET页面(Webforms),从查看代码来看,源代码来自数据库的过多往返。内循环中的数据库调用执行大约8000次,当我们需要大约一个数量级的数据库调用时。

要验证我的代码更改是否具有预期效果,在呈现单个页面期间记录/观察数据库调用次数的最直接方法是什么?

编辑:此项目的开发数据库当前未配置为允许我运行SQL Server Profiler(“您必须是sysadmin固定服务器角色的成员或具有ALTER TRACE权限”) 。我将与DBA讨论我们是否可以在Dev中为我们启用此权限,但与此同时,我对任何不需要sysadmin权限的替代方案感到好奇。

4 个答案:

答案 0 :(得分:2)

使用SQL Server Profiler - 在加载页面之前开始录制,在页面加载完成后停止。

您可以将其配置为仅记录特定事件,并按源应用程序,进程ID等内容进行过滤。

在您修复后,比较不同的运行。

另一种方法是使用网络表单应用中的mvc-mini profiler,详见this answer

答案 1 :(得分:0)

Sql Server Profiler是您完成此项工作所需的工具。

答案 2 :(得分:0)

看看Pex和Moles:http://research.microsoft.com/en-us/projects/pex/downloads.aspx。这些是“模拟对象”,您可以创建一个透明地忽略对数据库的调用的对象,而不会弄乱您的代码。然后在该对象内部放置一些日志代码。

答案 3 :(得分:0)

Sql Profiler非常适合这里。如果你只是需要一个更少的SELECT N + 1正在进行的验证,它就可以完成这项工作。如果您需要更准确的信息并且使用的是流行的ORM,则可能需要查看Hibernating Rhinos suite of profilers