MiniProfiler检测到"重复" SQL查询并在检测到它时在角落给你一个红色感叹号(我使用MiniProfilerEF
链接到我的代码优先EF数据库访问)。这通常非常有用,但有时这些重复的查询是完全合理的,比如当我以参数化的方式更新50个用户时; 49将被检测为重复查询。
那么,有没有办法让我为一段代码禁用这种重复的SQL查询检测?类似的东西:
using (MiniProfiler.Current.Step("Do bulk updates"), Options.NoDuplicateSqlChecking) {
// ...
}
......会很好。
查看MiniProfiler代码,此行似乎正在检查重复项:
https://github.com/SamSaffron/MiniProfiler/blob/master/StackExchange.Profiling/MiniProfiler.IDbProfiler.cs#L91
目前看来还没有任何办法可以做到这一点。如果指定了此选项,我猜stats.IsDuplicate
永远不必设置为true
,但只针对特定代码块执行此操作非常棘手。或者也许可以以某种方式考虑参数和SQL命令字符串,因为它们可能会改变,即使是批量操作也是如此。
答案 0 :(得分:0)
刚刚找到了我自己的问题的答案;您可以使用MiniProfiler.Current.Ignore()
停止对代码的某些部分进行概要分析:
using (MiniProfiler.Current.Ignore()) {
// ...
}
这几乎可以满足我的需求;唯一的轻微烦恼是它完全停止了剖析。我宁愿它继续列出SQL查询,但没有将它们标记为重复,但是很好。