【发布时间】:2014-02-04 22:32:32
【问题描述】:
大约有 6 个程序在内部调用以从事务表中获取数据并对检索到的数据进行聚合,格式化为 XML,然后每小时发送电子邮件。
在此过程中,许多登录完成,日志也以 HTML 格式的电子邮件发送(在同一封电子邮件中)。有一个过程发生死锁,电子邮件的一部分总是丢失,或者我们发生死锁(LOGS)。因此,为了处理,我尝试在该特定过程中使用 READ_COMMITTED_SNAPSHOT。任何人都可以建议这是否对他们有用,否则这是处理这种死锁的最佳方法。
我可以通过检查输出是否为 Null 在内部重试该特定过程。
我不能让其他进程失败,因为这是一个事务。但我需要 HTML 来显示所有信息,而不会丢失正文中的任何内容。
编辑:这种情况很少发生。但是现在频率每天都在增加。我无法理解,因为该过程只是试图从事务表中读取并进行一些计算并将其格式化为 XML,而另一个事务是写入事务表。那么 WRITE 如何影响 READ
【问题讨论】:
-
删除了 SQL Server 2008/2012 标签。
标签: sql sql-server deadlock