我看到與使用LINQ to SQL執行查詢相關的超時問題。所以我做了一個簡單的控制檯程序,問題仍然存在,並非總是如此,但隨機數足以讓我擔心。這幾乎是我的整個程序:使用LINQ to SQL查詢大表(10M +行)導致超時
public static TransactionDataContext DataContext = new TransactionDataContext();
static void Main(string[] args)
{
int year = ...;
int stateCode = ...;
DateTime minYear = new DateTime(year, 01, 01);
DateTime maxYear = new DateTime(year, 12, 31);
var volumes = DataContext.TRANSACTIONs.Where(p =>
p.STATE_NO == stateCode &&
p.TRANS_DATE >= minYear &&
p.TRANS_DATE <= maxYear).OrderBy(p => p.TRANS_DATE);
}
我的數據庫中的TRANSACTION表有10M +記錄。在最後一個關閉花括號處設置斷點後,我運行調試器。有時,擴展卷變量和結果視圖會顯示數據,有時會顯示「功能評估超時」。通過設置DataContext.CommandTimeout延長超時似乎沒有幫助,我不認爲這是解決方案。
我的問題是爲什麼LINQ to SQL有這種限制,或者如果我做錯了。
更新:從Management Studio運行SQL語句是好的,所以我不認爲這是一個索引問題。
嘗試在調試時運行SQL查詢分析器,然後可以找到正在執行的SQL查詢,並通過查詢分析器運行它以查看保留的內容。 – PostMan 2011-01-11 21:34:40
查詢在調試器外部運行時,您是否遇到超時問題?調試器有自己的超時讀取變量的值。 – 2011-01-11 21:35:52