繁体   English   中英

测量每个http请求的数据库调用数

[英]Measuring number of database calls per http request

最近,我们公司专注于我们长期开发的应用程序的性能。 在性能测试期间我们注意到的一件事,某些方法正在进行如此多的数据库调用(超过500个查询)

然后这会带来一个问题,哪些方法正在进行如此多的调用,以及应该如何优先考虑首先重构哪个方法。 当我们最初尝试重构其中一些方法时,我们发现需要花费很多精力来减少往返次数。 原因是我们的数据访问层几乎取决于NHibernate ORM框架,我们发现我们从开发开始就完全滥用了Lazyloading配置。 这就是为什么往返次数很多并且影响性能的原因。 只是纠正延迟加载配置会产生很多回归。

因此,我们不得不想办法收集每个http请求的数据库调用次数。 我已经看到一些像Application Insight或AppDynamics这样的工具为所有从属调用提供了整体结果。 但我只是想知道有没有一种方法来收集这些跟踪不同于使用这些框架?

例如,每次发出http请求时,我们是否可以在控制器中拥有属性,只要在方法的调用堆栈中调用ExecuteQuery()或SqlDataAdapter.Fill方法,它就可以增加计数器。 我正在寻找像这样的解决方案。

任何帮助是极大的赞赏。

提前感谢您提出的所有建议。

使用Stackify前缀来处理这类事情:

https://stackify.com/prefix/

查看SQL查询:包括SQL参数,受影响的记录以及下载结果集所花费的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM