2013-05-03 51 views
1

MiniProfiler檢測到「重複」SQL查詢,並在檢測到它們時(在使用MiniProfilerEF鏈接到我的代碼優先的EF數據庫訪問權限)時在角落給您一個紅色感嘆號。這通常非常有用,但有時候這些重複查詢是完全正確的,就像我以參數化的方式更新50個用戶一樣; 49將被檢測爲重複查詢。我可以禁用MiniProfiler的一段代碼的重複SQL警告嗎?

有沒有辦法,那麼,我可以禁用這個重複的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

剛剛找到了我自己的問題的答案;您可以使用MiniProfiler.Current.Ignore()阻止某些代碼部分的剖析:

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

這幾乎是我想要做什麼;唯一輕微的煩惱是它完全停止分析。我寧願它保持列出SQL查詢,但沒有將它們標記爲重複項,但是很好。

相關問題