【问题标题】:Can I disable MiniProfiler's duplicate SQL warnings for a block of code?我可以为代码块禁用 MiniProfiler 的重复 SQL 警告吗?
【发布时间】:2013-05-03 08:45:37
【问题描述】:

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 命令字符串可能会以某种方式被考虑在内,因为它们可能会发生变化,即使是批量操作也是如此。

【问题讨论】:

    标签: c# mvc-mini-profiler


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      相关资源
      最近更新 更多