2009-12-08 63 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来处理您的需求。