Sql server 如何解决SQL Server中由于页面锁定而导致的死锁

Sql server 如何解决SQL Server中由于页面锁定而导致的死锁,sql-server,locking,deadlock,sql-delete,Sql Server,Locking,Deadlock,Sql Delete,我在SQL Server中有一个表adjustment\u details\u backup。我已将表格的模式附在此处: +---------------------------+---------+------------+-------------------------+ | Name | Owner | Type | Created_datetime | |---------------------------+--

我在SQL Server中有一个表
adjustment\u details\u backup
。我已将表格的模式附在此处:

+---------------------------+---------+------------+-------------------------+
| Name                      | Owner   | Type       | Created_datetime        |
|---------------------------+---------+------------+-------------------------|
| adjustment_details_backup | dbo     | user table | 2020-02-24 13:14:20.370 |
+---------------------------+---------+------------+-------------------------+

+---------------+----------+------------+----------+--------+---------+------------+----------------------+
| Column_name   | Type     | Computed   | Length   | Prec   | Scale   | Nullable   | TrimTrailingBlanks   |
|---------------+----------+------------+----------+--------+---------+------------+----------------------+
| id            | int      | no         | 4        | 10     | 0       | no         | (n/a)                |
| cid           | int      | no         | 4        | 10     | 0       | no         | (n/a)                |
| promotion_id  | int      | no         | 4        | 10     | 0       | no         | (n/a)                |
| adjustment_id | int      | no         | 4        | 10     | 0       | no         | (n/a)                |
| target_type   | varchar  | no         | 10       |        |         | no         | no                   |
| target_ids    | nvarchar | no         | -1       |        |         | no         | (n/a)                |
| bf_ids        | nvarchar | no         | -1       |        |         | yes        | (n/a)                |
+---------------+----------+------------+----------+--------+---------+------------+----------------------
 
+--------------------------------+-------------------------------------------------------+-------------------+
| index_name                     | index_description                                     | index_keys        |
|--------------------------------+-------------------------------------------------------+-------------------|
| adj_details_backup_cid_pid_idx | clustered                                             | cid, promotion_id |
| PK__adjustme__3213E83EAF725CC9 | nonclustered, unique, primary key, stats no recompute | id                |
| UQ__adjustme__32324848CA673053 | nonclustered, unique, unique key                      | adjustment_id     |
+--------------------------------+-------------------------------------------------------+-------------------+

此表包含升级Id的多条记录。我在并发执行的查询之间面临死锁

问题1:

delete from adjustment_details_backup 
where promotion_id = 28492
问题2:

delete from adjustment_details_backup 
where promotion_id = 28260
死锁图的XML为:

<deadlock>
  <victim-list>
    <victimProcess id="process26ce2575848" />
  </victim-list>
  <process-list>
    <process id="process26ce2575848" taskpriority="0" logused="0" waitresource="PAGE: 5:1:1643475 " waittime="19306" ownerId="5395124916" transactionname="implicit_transaction" lasttranstarted="2021-04-12T22:57:20.240" XDES="0x26cbb4f7aa0" lockMode="U" schedulerid="6" kpid="138164" status="suspended" spid="367" sbid="0" ecid="7" priority="0" trancount="0" lastbatchstarted="2021-04-12T22:57:20.240" lastbatchcompleted="2021-04-12T22:57:20.177" lastattention="1900-01-01T00:00:00.177" clientapp="Microsoft JDBC Driver for SQL Server" hostname="forecast-mgmt-747b85c647-twgm5" hostpid="0" isolationlevel="read committed (2)" xactid="5395124916" currentdb="5" currentdbname="forecast-management" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
      <executionStack>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000e3619d1890952212a37333bffa6d0ca92cc3684c0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x0200000005301203bd2a6100166b96a8b076cf61b9cf61140000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x0000000000000000" queryplanhash="0x0000000000000000" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
      </executionStack>
      <inputbuf>
delete from adjustment_details_backup where promotion_id = 28260   </inputbuf>
    </process>
    <process id="process26ce2577c28" taskpriority="0" logused="0" waitresource="PAGE: 5:1:1666487 " waittime="19302" ownerId="5395124916" transactionname="implicit_transaction" lasttranstarted="2021-04-12T22:57:20.240" XDES="0x26077e2daa0" lockMode="U" schedulerid="8" kpid="97276" status="suspended" spid="367" sbid="0" ecid="6" priority="0" trancount="0" lastbatchstarted="2021-04-12T22:57:20.240" lastbatchcompleted="2021-04-12T22:57:20.177" lastattention="1900-01-01T00:00:00.177" clientapp="Microsoft JDBC Driver for SQL Server" hostname="forecast-mgmt-747b85c647-twgm5" hostpid="0" isolationlevel="read committed (2)" xactid="5395124916" currentdb="5" currentdbname="forecast-management" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
      <executionStack>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000e3619d1890952212a37333bffa6d0ca92cc3684c0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x0200000005301203bd2a6100166b96a8b076cf61b9cf61140000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x0000000000000000" queryplanhash="0x0000000000000000" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
      </executionStack>
      <inputbuf>
delete from adjustment_details_backup where promotion_id = 28260   </inputbuf>
    </process>
    <process id="process26cc0b25848" taskpriority="0" logused="0" waitresource="PAGE: 5:1:1992058 " waittime="19296" ownerId="5395124916" transactionname="implicit_transaction" lasttranstarted="2021-04-12T22:57:20.240" XDES="0x25e78a15aa0" lockMode="U" schedulerid="10" kpid="86452" status="suspended" spid="367" sbid="0" ecid="5" priority="0" trancount="0" lastbatchstarted="2021-04-12T22:57:20.240" lastbatchcompleted="2021-04-12T22:57:20.177" lastattention="1900-01-01T00:00:00.177" clientapp="Microsoft JDBC Driver for SQL Server" hostname="forecast-mgmt-747b85c647-twgm5" hostpid="0" isolationlevel="read committed (2)" xactid="5395124916" currentdb="5" currentdbname="forecast-management" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
      <executionStack>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000e3619d1890952212a37333bffa6d0ca92cc3684c0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x0200000005301203bd2a6100166b96a8b076cf61b9cf61140000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x0000000000000000" queryplanhash="0x0000000000000000" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
      </executionStack>
      <inputbuf>
delete from adjustment_details_backup where promotion_id = 28260   </inputbuf>
    </process>
    <process id="process26220db44e8" taskpriority="0" logused="0" waitresource="PAGE: 5:1:1644155 " waittime="19306" ownerId="5395124916" transactionname="implicit_transaction" lasttranstarted="2021-04-12T22:57:20.240" XDES="0x2629d0ddaa0" lockMode="U" schedulerid="11" kpid="93408" status="suspended" spid="367" sbid="0" ecid="2" priority="0" trancount="0" lastbatchstarted="2021-04-12T22:57:20.240" lastbatchcompleted="2021-04-12T22:57:20.177" lastattention="1900-01-01T00:00:00.177" clientapp="Microsoft JDBC Driver for SQL Server" hostname="forecast-mgmt-747b85c647-twgm5" hostpid="0" isolationlevel="read committed (2)" xactid="5395124916" currentdb="5" currentdbname="forecast-management" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
      <executionStack>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000e3619d1890952212a37333bffa6d0ca92cc3684c0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x0200000005301203bd2a6100166b96a8b076cf61b9cf61140000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x0000000000000000" queryplanhash="0x0000000000000000" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
      </executionStack>
      <inputbuf>
delete from adjustment_details_backup where promotion_id = 28260   </inputbuf>
    </process>
    <process id="process263301e48c8" taskpriority="0" logused="10000" waittime="391" schedulerid="8" kpid="24256" status="suspended" spid="208" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2021-04-12T22:55:00.873" lastbatchcompleted="2021-04-12T22:55:00.873" lastattention="1900-01-01T00:00:00.873" clientapp="Microsoft JDBC Driver for SQL Server" hostname="forecast-mgmt-747b85c647-bck7r" hostpid="0" loginname="sfadmin" isolationlevel="read committed (2)" xactid="5394851450" currentdb="5" currentdbname="forecast-management" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
      <executionStack>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000e3619d1890952212a37333bffa6d0ca92cc3684c0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000add9d836abdc925b7e8512a0ad07c77bad20f63f0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x0000000000000000" queryplanhash="0x0000000000000000" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
      </executionStack>
      <inputbuf>
delete from adjustment_details_backup where promotion_id = 28492   </inputbuf>
    </process>
    <process id="process2613e78b468" taskpriority="0" logused="63080" waitresource="PAGE: 5:1:1666487 " waittime="12485" ownerId="5394851450" transactionname="implicit_transaction" lasttranstarted="2021-04-12T22:55:00.873" XDES="0x26ccec03aa0" lockMode="U" schedulerid="2" kpid="82200" status="suspended" spid="208" sbid="0" ecid="4" priority="0" trancount="0" lastbatchstarted="2021-04-12T22:55:00.873" lastbatchcompleted="2021-04-12T22:55:00.873" lastattention="1900-01-01T00:00:00.873" clientapp="Microsoft JDBC Driver for SQL Server" hostname="forecast-mgmt-747b85c647-bck7r" hostpid="0" isolationlevel="read committed (2)" xactid="5394851450" currentdb="5" currentdbname="forecast-management" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
      <executionStack>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000e3619d1890952212a37333bffa6d0ca92cc3684c0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000add9d836abdc925b7e8512a0ad07c77bad20f63f0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x0000000000000000" queryplanhash="0x0000000000000000" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
      </executionStack>
      <inputbuf>
delete from adjustment_details_backup where promotion_id = 28492   </inputbuf>
    </process>
    <process id="process26cc9927468" taskpriority="0" logused="63080" waitresource="PAGE: 5:1:1992058 " waittime="12580" ownerId="5394851450" transactionname="implicit_transaction" lasttranstarted="2021-04-12T22:55:00.873" XDES="0x26ca371daa0" lockMode="U" schedulerid="9" kpid="67304" status="suspended" spid="208" sbid="0" ecid="6" priority="0" trancount="0" lastbatchstarted="2021-04-12T22:55:00.873" lastbatchcompleted="2021-04-12T22:55:00.873" lastattention="1900-01-01T00:00:00.873" clientapp="Microsoft JDBC Driver for SQL Server" hostname="forecast-mgmt-747b85c647-bck7r" hostpid="0" isolationlevel="read committed (2)" xactid="5394851450" currentdb="5" currentdbname="forecast-management" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
      <executionStack>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000e3619d1890952212a37333bffa6d0ca92cc3684c0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000add9d836abdc925b7e8512a0ad07c77bad20f63f0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x0000000000000000" queryplanhash="0x0000000000000000" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
      </executionStack>
      <inputbuf>
delete from adjustment_details_backup where promotion_id = 28492   </inputbuf>
    </process>
    <process id="process26ce204a8c8" taskpriority="0" logused="63080" waitresource="PAGE: 5:1:1643475 " waittime="12946" ownerId="5394851450" transactionname="implicit_transaction" lasttranstarted="2021-04-12T22:55:00.873" XDES="0x26cc3125aa0" lockMode="U" schedulerid="1" kpid="95516" status="suspended" spid="208" sbid="0" ecid="1" priority="0" trancount="0" lastbatchstarted="2021-04-12T22:55:00.873" lastbatchcompleted="2021-04-12T22:55:00.873" lastattention="1900-01-01T00:00:00.873" clientapp="Microsoft JDBC Driver for SQL Server" hostname="forecast-mgmt-747b85c647-bck7r" hostpid="0" isolationlevel="read committed (2)" xactid="5394851450" currentdb="5" currentdbname="forecast-management" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
      <executionStack>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000e3619d1890952212a37333bffa6d0ca92cc3684c0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000add9d836abdc925b7e8512a0ad07c77bad20f63f0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x0000000000000000" queryplanhash="0x0000000000000000" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
      </executionStack>
      <inputbuf>
delete from adjustment_details_backup where promotion_id = 28492   </inputbuf>
    </process>
    <process id="process26cc9933848" taskpriority="0" logused="63080" waitresource="PAGE: 5:1:1644155 " waittime="12856" ownerId="5394851450" transactionname="implicit_transaction" lasttranstarted="2021-04-12T22:55:00.873" XDES="0x26b35c0baa0" lockMode="U" schedulerid="7" kpid="72952" status="suspended" spid="208" sbid="0" ecid="2" priority="0" trancount="0" lastbatchstarted="2021-04-12T22:55:00.873" lastbatchcompleted="2021-04-12T22:55:00.873" lastattention="1900-01-01T00:00:00.873" clientapp="Microsoft JDBC Driver for SQL Server" hostname="forecast-mgmt-747b85c647-bck7r" hostpid="0" isolationlevel="read committed (2)" xactid="5394851450" currentdb="5" currentdbname="forecast-management" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
      <executionStack>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000e3619d1890952212a37333bffa6d0ca92cc3684c0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x9c39d2d962cc226f" queryplanhash="0x3a3f2196dc34ec92" line="1" stmtend="126" sqlhandle="0x02000000add9d836abdc925b7e8512a0ad07c77bad20f63f0000000000000000000000000000000000000000">
unknown    </frame>
        <frame procname="unknown" queryhash="0x0000000000000000" queryplanhash="0x0000000000000000" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
      </executionStack>
      <inputbuf>
delete from adjustment_details_backup where promotion_id = 28492   </inputbuf>
    </process>
  </process-list>
  <resource-list>
    <pagelock fileid="1" pageid="1643475" dbid="5" subresource="FULL" objectname="66b54972-a069-4426-a3c9-393f898368f6.dbo.adjustment_details_backup" id="lock26a2ff11d80" mode="U" associatedObjectId="72057594139574272">
      <owner-list>
        <owner id="process26cc9933848" mode="U" />
      </owner-list>
      <waiter-list>
        <waiter id="process26ce2575848" mode="U" requestType="wait" />
      </waiter-list>
    </pagelock>
    <pagelock fileid="1" pageid="1666487" dbid="5" subresource="FULL" objectname="66b54972-a069-4426-a3c9-393f898368f6.dbo.adjustment_details_backup" id="lock26a3208a300" mode="U" associatedObjectId="72057594139574272">
      <owner-list>
        <owner id="process263301e48c8" mode="U" />
      </owner-list>
      <waiter-list>
        <waiter id="process26ce2577c28" mode="U" requestType="wait" />
      </waiter-list>
    </pagelock>
    <pagelock fileid="1" pageid="1992058" dbid="5" subresource="FULL" objectname="66b54972-a069-4426-a3c9-393f898368f6.dbo.adjustment_details_backup" id="lock266cdfce800" mode="U" associatedObjectId="72057594139574272">
      <owner-list>
        <owner id="process263301e48c8" mode="U" />
      </owner-list>
      <waiter-list>
        <waiter id="process26cc0b25848" mode="U" requestType="wait" />
      </waiter-list>
    </pagelock>
    <pagelock fileid="1" pageid="1644155" dbid="5" subresource="FULL" objectname="66b54972-a069-4426-a3c9-393f898368f6.dbo.adjustment_details_backup" id="lock26a316db580" mode="U" associatedObjectId="72057594139574272">
      <owner-list>
        <owner id="process2613e78b468" mode="U" />
      </owner-list>
      <waiter-list>
        <waiter id="process26220db44e8" mode="U" requestType="wait" />
      </waiter-list>
    </pagelock>
    <exchangeEvent id="Pipe26268814400" WaitType="e_waitPipeGetRow" waiterType="Coordinator" nodeId="6" tid="0" ownerActivity="sentData" waiterActivity="needMoreData" merging="false" spilling="false" waitingToClose="false">
      <owner-list>
        <owner id="process26ce204a8c8" />
        <owner id="process26cc9933848" />
        <owner id="process2613e78b468" />
        <owner id="process26cc9927468" />
      </owner-list>
      <waiter-list>
        <waiter id="process263301e48c8" />
      </waiter-list>
    </exchangeEvent>
    <pagelock fileid="1" pageid="1666487" dbid="5" subresource="FULL" objectname="66b54972-a069-4426-a3c9-393f898368f6.dbo.adjustment_details_backup" id="lock26a3208a300" mode="U" associatedObjectId="72057594139574272">
      <owner-list>
        <owner id="process26ce2577c28" mode="U" requestType="wait" />
      </owner-list>
      <waiter-list>
        <waiter id="process2613e78b468" mode="U" requestType="wait" />
      </waiter-list>
    </pagelock>
    <pagelock fileid="1" pageid="1992058" dbid="5" subresource="FULL" objectname="66b54972-a069-4426-a3c9-393f898368f6.dbo.adjustment_details_backup" id="lock266cdfce800" mode="U" associatedObjectId="72057594139574272">
      <owner-list>
        <owner id="process26cc0b25848" mode="U" requestType="wait" />
      </owner-list>
      <waiter-list>
        <waiter id="process26cc9927468" mode="U" requestType="wait" />
      </waiter-list>
    </pagelock>
    <pagelock fileid="1" pageid="1643475" dbid="5" subresource="FULL" objectname="66b54972-a069-4426-a3c9-393f898368f6.dbo.adjustment_details_backup" id="lock26a2ff11d80" mode="U" associatedObjectId="72057594139574272">
      <owner-list>
        <owner id="process26ce2575848" mode="U" requestType="wait" />
      </owner-list>
      <waiter-list>
        <waiter id="process26ce204a8c8" mode="U" requestType="wait" />
      </waiter-list>
    </pagelock>
    <pagelock fileid="1" pageid="1644155" dbid="5" subresource="FULL" objectname="66b54972-a069-4426-a3c9-393f898368f6.dbo.adjustment_details_backup" id="lock26a316db580" mode="U" associatedObjectId="72057594139574272">
      <owner-list>
        <owner id="process26220db44e8" mode="U" requestType="wait" />
      </owner-list>
      <waiter-list>
        <waiter id="process26cc9933848" mode="U" requestType="wait" />
      </waiter-list>
    </pagelock>
  </resource-list>
</deadlock>

不为人知
不为人知
不为人知
从调整\u详细信息\u备份中删除,其中升级\u id=28260
不为人知
不为人知
不为人知
从调整\u详细信息\u备份中删除,其中升级\u id=28260
不为人知
不为人知
不为人知
从调整\u详细信息\u备份中删除,其中升级\u id=28260
不为人知
不为人知
不为人知
从调整\u详细信息\u备份中删除,其中升级\u id=28260
不为人知
不为人知
不为人知
从调整\u详细信息\u备份中删除,其中升级\u id=28492
不为人知
不为人知
不为人知
从调整\u详细信息\u备份中删除,其中升级\u id=28492
不为人知
不为人知
不为人知
从调整\u详细信息\u备份中删除,其中升级\u id=28492
不为人知
不为人知
不为人知
从调整\u详细信息\u备份中删除,其中升级\u id=28492
不为人知
不为人知
不为人知
从调整\u详细信息\u备份中删除,其中升级\u id=28492
查询执行计划

死锁图的屏幕截图:

根据我的分析,死锁是由于位于同一页面上的不同促销Id的多个记录造成的。如何防止这种僵局

另外,由于两个查询都使用相同的筛选参数.v.i.z<代码>促销标识。我假设查询#1将获得一个锁,如果查询#2的记录包含在同一页上,那么它将等待查询#1的锁被释放。为什么不是这样


如果一个资源获取了页面锁,为什么另一个资源不等待释放该页面锁?PageLock不能有效地处理并发DML查询吗?

不要使用这样的图像,这对我们没用。改为粘贴表和索引定义的文本。看起来您需要在粘贴架构的
promotion\u id
@Charlieface上创建索引。向促销id添加索引将有何帮助。它将如何在内部工作并解决冲突。另外,它应该是聚集索引还是非聚集索引会起作用?NCI应该可以,我认为它只是因为没有索引而锁定太多。在同一事务中是否有其他查询,还是仅此一个?请通过共享查询计划。Sqlserver也可能在并行线程上死锁,我看到您的计划是并行的。请尝试使用
maxdop 1
hint查看这是否有任何影响。