我正在開發優化LINQ到SQL查詢的工具。基本上,它攔截linq執行管道,並進行一些優化,例如從查詢中刪除冗餘連接。當然,在查詢在dbms中執行之前,執行時間會有一些開銷,但是應該更快地處理查詢。我不想使用sql分析器,因爲我知道生成的查詢將在dbms中比原始查詢更好地執行,我正在尋找一種正確的方法來測量在linq中創建查詢和執行結束。目前,我使用秒錶類和我的代碼看起來是這樣的:需要關於比較2等效LINQ到SQL查詢性能的建議
var sw = new Stopwatch();
sw.Start();
const int amount = 100;
for (var i = 0; i < amount; i++)
{
ExecuteNonOptimizedQuery();
}
sw.Stop();
Console.Writeline("Executing the query {2} times took: {0}ms. On average, each query took: {1}ms", sw.ElapsedMilliseconds, sw.ElapsedMilliseconds/amount, amount);
基本上ExecutenNonOptimizedQuery()方法創建一個新的DataContext,創建一個查詢,然後遍歷結果。
我對查詢的兩個版本都是這樣,普通版和優化版。我從Frans Bouma的this發佈了這個想法。
我應該採取其他方法嗎?
在此先感謝!
感謝您的回答! – uvita 2010-03-15 00:20:48