我有一个进程(在夜间)以linq2sql查询的形式获取大量数据,并将其转储为XML(站点地图)。我的问题是我有时会:
system.data.sqlclient.sqlException: 事务(进程ID xx)在锁资源上与另一个进程死锁,已被选为死锁牺牲品。重新运行事务。
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) }
查询的代码将有助于调试您的特定问题,但您也可以查看使用SQL作业和一些SQL Server功能,如 xmlauto 和 transaction isolation level read uncommitted 来满足你的需求。
xmlauto
transaction isolation level read uncommitted