2009-12-08 62 views
0

我有一個進程(在晚上)以linq2sql查詢的形式接收大量數據並將其轉儲爲XML(站點地圖)。我的問題是,我有時會得到:「事務(進程ID 56)在另一個」鎖定資源上死鎖「

System.Data.SqlClient.SqlException:

事務(進程ID XX)已被死鎖的鎖資源與另一個進程,並已被選作死鎖犧牲品。重新運行交易。

此查詢是隻讀的,不一定是「交易安全」。我可以編寫這樣的過程來避免異常嗎?

編輯:

基本上代碼:

foreach(Record record in MyDataContext.FatTableWithRecords) //about 50' records 
{ 
    //produce some XML (dumped to file when max 50' records or 10MB large) 
} 

回答

0

的查詢將幫助調試您的特定問題的代碼,但你也可以看看使用SQL作業和某些SQL Server的功能如xmlautotransaction isolation level read uncommitted來處理您的需求。