Sql Server中的死锁

时间:2013-09-24 07:47:50

标签: sql sql-server deadlock

我们的sql server 2008系统中有一些死锁,我不明白是什么原因。它是第三方Java应用程序,它并行执行一些数据库操作。

所以第一个问题是为什么我们会遇到死锁,第二个问题是我能做些什么呢?我知道数据库快照模式 - 但它以这种方式提供帮助。 在这里看到跟踪标志(1204/1222)的(部分)日志作为csv(我不知道如何整体添加文件)

扩展事件的XML

<deadlock-list>
<deadlock>
<victim-list>
  <victimProcess id="process892988" />
</victim-list>
<process-list>
  <process id="process892988" taskpriority="0" logused="488" waitresource="KEY:   31:72057594044088320 (3fdbb2f91669)" waittime="10350" ownerId="70501" transactionname="implicit_transaction" lasttranstarted="2013-09-23T21:59:00.650" XDES="0x886843b0" lockMode="S" schedulerid="3" kpid="1560" status="suspended" spid="88" sbid="0" ecid="0" priority="0" trancount="1" lastbatchstarted="2013-09-23T21:59:00.693" lastbatchcompleted="2013-09-23T21:59:00.693" clientapp="smart.ewp ewpenergyservices-ws" hostname="ES13EWP02" hostpid="0" loginname="ewpdbuser" isolationlevel="read committed (2)" xactid="70501" currentdb="31" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
    <executionStack>
      <frame procname="" line="1" stmtstart="24" sqlhandle="0x02000000b02b092608fd4cd00f28345be74735afe5fc4953" />
      <frame procname="" line="1" sqlhandle="0x000000000000000000000000000000000000000000000000" />
    </executionStack>
    <inputbuf>
(@P0 bigint)
SELECT A0.pk,A0.name1,A0.name2,A0.customerNumber,A0.sesoMandantPk,A0.ACKOPTLOCK 
FROM Customer A0 
WHERE A0.pk = @P0            </inputbuf>
  </process>
  <process id="process13ee08" taskpriority="0" logused="608" waitresource="KEY: 31:72057594044481536 (65d1e11ba9a3)" waittime="10350" ownerId="70414" transactionname="implicit_transaction" lasttranstarted="2013-09-23T21:59:00.293" XDES="0x9c797950" lockMode="S" schedulerid="1" kpid="1620" status="suspended" spid="53" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2013-09-23T21:59:00.693" lastbatchcompleted="2013-09-23T21:59:00.693" lastattention="1900-01-01T00:00:00.693" clientapp="smart.ewp ewpenergyservices-ws" hostname="ES13EWP02" hostpid="0" loginname="ewpdbuser" isolationlevel="read committed (2)" xactid="70414" currentdb="31" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
    <executionStack>
      <frame procname="" line="1" stmtstart="648" sqlhandle="0x02000000fe4ceb1893d1d2da7430d5b504cd613124565058" />
      <frame procname="" line="1" sqlhandle="0x000000000000000000000000000000000000000000000000" />
    </executionStack>
    <inputbuf>
(@P0 nvarchar(4000),@P1 varchar(8000),@P2 varchar(8000),@P3 varchar(8000),@P4 nvarchar(4000),@P5 int,@P6 varchar(8000),@P7 varchar(8000),@P8 varchar(8000),@P9 nvarchar(4000),@P10 nvarchar(4000),@P11 nvarchar(4000),@P12 nvarchar(4000),@P13 bigint,@P14 bigint,@P15 bigint,@P16 bigint,@P17 bigint,@P18 int,@P19 bigint,@P20 int)
UPDATE SupplierContract 
SET contractNo=@P0,contractDateFrom=@P1,contractDateTo=@P2,terminationDeadline=@P3,terminationTimeUnit=@P4,terminationTimeShare=@P5,terminationDays=@P6,terminationDate=@P7,fixedTerminationDate=@P8,terminationDateType=@P9,terminationRegistered=@P10,gridInvoiceRecipient=@P11,supplyOfLastResort=@P12,meteringPointPk=@P13,customerPk=@P14,supplierPk=@P15,poaPk=@P16,sesoMandantPk=@P17,ACKOPTLOCK=@P18 
WHERE pk = @P19  AND ACKOPTLOCK = @P20                                                                                                                                                                  </inputbuf>
  </process>
</process-list>
<resource-list>
  <keylock hobtid="72057594044088320" dbid="31" objectname="" indexname="" id="lock8009e280" mode="X" associatedObjectId="72057594044088320">
    <owner-list>
      <owner id="process13ee08" mode="X" />
    </owner-list>
    <waiter-list>
      <waiter id="process892988" mode="S" requestType="wait" />
    </waiter-list>
  </keylock>
  <keylock hobtid="72057594044481536" dbid="31" objectname="" indexname="" id="lock8009fd00" mode="X" associatedObjectId="72057594044481536">
    <owner-list>
      <owner id="process892988" mode="X" />
    </owner-list>
    <waiter-list>
      <waiter id="process13ee08" mode="S" requestType="wait" />
    </waiter-list>
  </keylock>
</resource-list>
</deadlock>
   </deadlock-list>

0 个答案:

没有答案