1

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 命令字符串,因为它们可能会发生变化,即使是批量操作也是如此。

4

1 回答 1

0

刚刚找到了我自己问题的答案;您可以使用MiniProfiler.Current.Ignore()停止分析某些代码部分:

using (MiniProfiler.Current.Ignore()) {
    // ...
}

这几乎可以满足我的要求;唯一轻微的烦恼是它完全停止了分析。我宁愿它继续列出 SQL 查询,但没有将它们标记为重复,但是哦,好吧。

于 2013-05-03T10:35:06.763 回答