我有一个进程(在晚上)以linq2sql查询的形式获取大量数据并将其转储为XML(站点地图)。我的问题是我有时会得到:
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 :(得分:0)
查询代码有助于调试您的特定问题,但您也可以查看使用sql作业和一些sql server功能,如xmlauto
和transaction isolation level read uncommitted
来处理您的需求。