小编San*_*apu的帖子

并发更新导致的死锁(使用 SIU 锁)

我们有 2 个不同的 wcf 服务,它们由 Windows 服务调用。这些 wcf 服务中的方法正在更新不同存储过程中的同一个表。有一件事是肯定的:在这两个过程中更新的记录是不同的。这是死锁图xml:

 <deadlock victim="process4cad4c8">
        <process-list>
            <process id="process4cad4c8" taskpriority="0" logused="0" waitresource="PAGE: 11:1:960" waittime="3687" ownerId="1043067366" transactionname="UPDATE" lasttranstarted="2015-01-06T04:01:31.207" XDES="0x19b797950" lockMode="IX" schedulerid="7" kpid="3124" status="suspended" spid="103" sbid="6" ecid="0" priority="0" trancount="2" lastbatchstarted="2015-01-06T04:01:31.197" lastbatchcompleted="2015-01-06T03:53:28.053" clientapp="EntityFramework" hostname="hostname" hostpid="1332" loginname="loginname" isolationlevel="read committed (2)" xactid="1043067366" currentdb="11" lockTimeout="4294967295" clientoption1="673185824" clientoption2="128056">
                <executionStack>
                    <frame procname="DB.schema.Proc1" line="63" stmtstart="5600" stmtend="6756" sqlhandle="0x03000b002bcbd65c9605370018a400000100000000000000">
UPDATE Table1 WITH (ROWLOCK)
    SET Column1 = @Column1
    WHERE Id = @Id    </frame>
                </executionStack>
                <inputbuf>
Proc [Database Id = 11 Object Id = 1557580587]    </inputbuf>
            </process>
            <process …
Run Code Online (Sandbox Code Playgroud)

sql-server deadlock

5
推荐指数
1
解决办法
3241
查看次数

标签 统计

deadlock ×1

sql-server ×1