代码之家  ›  专栏  ›  技术社区  ›  Niels Bosma

“事务(进程ID 56)在锁定资源时与另一个事务死锁”

  •  0
  • Niels Bosma  · 技术社区  · 15 年前

    我有一个进程(在夜间)以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)
    }
    
    1 回复  |  直到 13 年前
        1
  •  0
  •   µBio    15 年前

    查询的代码将有助于调试您的特定问题,但您也可以查看使用SQL作业和一些SQL Server功能,如 xmlauto transaction isolation level read uncommitted 来满足你的需求。