Server has 80 cores (4 phsical intel), max degree of parallelism (sp_configure) set to 5.
We got this error on a merge statement, the target is a table which has 3300+ partitions, row compression , has 406,332,191 ROWS, total size of 59,698 MB
What can be solution to this (holdlock on merge maybe or maxdop 1)? and what could be causing this?
Thank you
Below is the deadlock graph and merge statement
<deadlock-list><deadlock victim="processa962db2cf8"><process-list><process id="processa962db2cf8" taskpriority="0" logused="10000" waittime="108" schedulerid="58" kpid="27492" status="suspended" spid="74" sbid="0" ecid="2" priority="0" trancount="0" lastbatchstarted="2012-12-25T18:38:39.017" lastbatchcompleted="2012-12-25T18:38:39.017" lastattention="1900-01-01T00:00:00.017" clientapp="VTU_20121225_183837" hostname="FACLSNA01VAPP34" hostpid="62696" isolationlevel="read committed (2)" xactid="1861159942" currentdb="13" lockTimeout="4294967295" clientoption1="673316896" clientoption2="128056" databaseName="Diablo"><executionStack><frame procname="unknown" line="4567" stmtstart="786950" stmtend="803520" sqlhandle="0x03000d00f1e836612b2586002aa1000001000000000000000000000000000000000000000000000000000000"> unknown </frame><frame procname="unknown" line="1" sqlhandle="0x01000d00e3032507409d3bc8b700000000000000000000000000000000000000000000000000000000000000"> unknown </frame></executionStack><inputbuf> EXEC aTrans.VTUProcess @RunType_Annual_Catchup_Daily = 3 /*Daily*/</inputbuf></process><process id="process1e86a10b868" taskpriority="0" logused="10000" waittime="108" schedulerid="59" kpid="26832" status="suspended" spid="74" sbid="0" ecid="3" priority="0" trancount="0" lastbatchstarted="2012-12-25T18:38:39.017" lastbatchcompleted="2012-12-25T18:38:39.017" lastattention="1900-01-01T00:00:00.017" clientapp="VTU_20121225_183837" hostname="FACLSNA01VAPP34" hostpid="62696" isolationlevel="read committed (2)" xactid="1861159942" currentdb="13" lockTimeout="4294967295" clientoption1="673316896" clientoption2="128056" databaseName="Diablo"><executionStack><frame procname="unknown" line="4567" stmtstart="786950" stmtend="803520" sqlhandle="0x03000d00f1e836612b2586002aa1000001000000000000000000000000000000000000000000000000000000"> unknown </frame><frame procname="unknown" line="1" sqlhandle="0x01000d00e3032507409d3bc8b700000000000000000000000000000000000000000000000000000000000000"> unknown </frame></executionStack><inputbuf> EXEC aTrans.VTUProcess @RunType_Annual_Catchup_Daily = 3 /*Daily*/</inputbuf></process><process id="process5fd3f52188" taskpriority="0" logused="10000" waittime="108" schedulerid="66" kpid="22948" status="suspended" spid="74" sbid="0" ecid="4" priority="0" trancount="0" lastbatchstarted="2012-12-25T18:38:39.017" lastbatchcompleted="2012-12-25T18:38:39.017" lastattention="1900-01-01T00:00:00.017" clientapp="VTU_20121225_183837" hostname="FACLSNA01VAPP34" hostpid="62696" isolationlevel="read committed (2)" xactid="1861159942" currentdb="13" lockTimeout="4294967295" clientoption1="673316896" clientoption2="128056" databaseName="Diablo"><executionStack><frame procname="unknown" line="4567" stmtstart="786950" stmtend="803520" sqlhandle="0x03000d00f1e836612b2586002aa1000001000000000000000000000000000000000000000000000000000000"> unknown </frame><frame procname="unknown" line="1" sqlhandle="0x01000d00e3032507409d3bc8b700000000000000000000000000000000000000000000000000000000000000"> unknown </frame></executionStack><inputbuf> EXEC aTrans.VTUProcess @RunType_Annual_Catchup_Daily = 3 /*Daily*/</inputbuf></process><process id="process1e6f717ccf8" taskpriority="0" logused="10000" waittime="108" schedulerid="67" kpid="22800" status="suspended" spid="74" sbid="0" ecid="5" priority="0" trancount="0" lastbatchstarted="2012-12-25T18:38:39.017" lastbatchcompleted="2012-12-25T18:38:39.017" lastattention="1900-01-01T00:00:00.017" clientapp="VTU_20121225_183837" hostname="FACLSNA01VAPP34" hostpid="62696" isolationlevel="read committed (2)" xactid="1861159942" currentdb="13" lockTimeout="4294967295" clientoption1="673316896" clientoption2="128056" databaseName="Diablo"><executionStack><frame procname="unknown" line="4567" stmtstart="786950" stmtend="803520" sqlhandle="0x03000d00f1e836612b2586002aa1000001000000000000000000000000000000000000000000000000000000"> unknown </frame><frame procname="unknown" line="1" sqlhandle="0x01000d00e3032507409d3bc8b700000000000000000000000000000000000000000000000000000000000000"> unknown </frame></executionStack><inputbuf> EXEC aTrans.VTUProcess @RunType_Annual_Catchup_Daily = 3 /*Daily*/</inputbuf></process><process id="processe6cc449498" taskpriority="0" logused="10000" waittime="109" schedulerid="57" kpid="27580" status="suspended" spid="74" sbid="0" ecid="1" priority="0" trancount="0" lastbatchstarted="2012-12-25T18:38:39.017" lastbatchcompleted="2012-12-25T18:38:39.017" lastattention="1900-01-01T00:00:00.017" clientapp="VTU_20121225_183837" hostname="FACLSNA01VAPP34" hostpid="62696" isolationlevel="read committed (2)" xactid="1861159942" currentdb="13" lockTimeout="4294967295" clientoption1="673316896" clientoption2="128056" databaseName="Diablo"><executionStack><frame procname="unknown" line="4567" stmtstart="786950" stmtend="803520" sqlhandle="0x03000d00f1e836612b2586002aa1000001000000000000000000000000000000000000000000000000000000"> unknown </frame><frame procname="unknown" line="1" sqlhandle="0x01000d00e3032507409d3bc8b700000000000000000000000000000000000000000000000000000000000000"> unknown </frame></executionStack><inputbuf> EXEC aTrans.VTUProcess @RunType_Annual_Catchup_Daily = 3 /*Daily*/</inputbuf></process><process id="process9011486cf8" waittime="103" schedulerid="57" kpid="0" /></process-list><resource-list><exchangeEvent id="Port100f50dfc00" WaitType="e_waitPortOpen" nodeId="24"><owner-list><owner id="process1e86a10b868" /></owner-list><waiter-list><waiter id="processa962db2cf8" /></waiter-list></exchangeEvent><exchangeEvent id="Port100f50dfc00" WaitType="e_waitPortOpen" nodeId="24"><owner-list><owner id="process5fd3f52188" /></owner-list><waiter-list><waiter id="process1e86a10b868" /></waiter-list></exchangeEvent><exchangeEvent id="Port100f50dfc00" WaitType="e_waitPortOpen" nodeId="24"><owner-list><owner id="process1e6f717ccf8" /></owner-list><waiter-list><waiter id="process5fd3f52188" /></waiter-list></exchangeEvent><exchangeEvent id="Port100f50dfc00" WaitType="e_waitPortOpen" nodeId="24"><owner-list><owner id="process9011486cf8" /></owner-list><waiter-list><waiter id="process1e6f717ccf8" /></waiter-list></exchangeEvent><exchangeEvent id="Port100f50dfc00" WaitType="e_waitPortOpen" nodeId="24"><owner-list><owner id="processa962db2cf8" /></owner-list><waiter-list><waiter id="processe6cc449498" /></waiter-list></exchangeEvent><threadpool id="scheduler100fe5e0040"><owner-list><owner id="processe6cc449498" /></owner-list><waiter-list><waiter id="process9011486cf8" /></waiter-list></threadpool></resource-list></deadlock></deadlock-list>
WITH RetPropertyLegalPartyName
AS ( SELECT #VTUOutput.CntyCd
, #VTUOutput.PclId
, #VTUOutput.PclSeqNbr
, CAST(2 AS TINYINT) AS NameTypId
, #VTUOutput.Sequence1 AS NameSeq
, #VTUOutput.PropertyLegalPartyName_AKAName AS AKAName
, #VTUOutput.PropertyLegalPartyName_AKANameTypCd AS AKANameTypCd
, #VTUOutput.PropertyLegalPartyName_CareOfName AS CareOfName
, #VTUOutput.PropertyLegalPartyName_CorpInd AS CorpInd
, #VTUOutput.PropertyLegalPartyName_DBAName AS DBAName
, #VTUOutput.PropertyLegalPartyName_EtConInd AS EtConInd
, #VTUOutput.PropertyLegalPartyName_EtUxInd AS EtUxInd
, #VTUOutput.PropertyLegalPartyName_EtvirInd AS EtvirInd
, #VTUOutput.PropertyLegalPartyName_FullName AS FullName
, #VTUOutput.PropertyLegalPartyName_OwnrShipRightsCd AS OwnrShipRightsCd
, #VTUOutput.PropertyLegalPartyName_PCTOwnrship AS PCTOwnrship
, #VTUOutput.PropertyLegalPartyName_RelTypCd AS RelTypCd
, @UpdateID AS UpdateID
, @UpdateTimestamp AS UpdateTimestamp
FROM #VTUOutput
WHERE #VTUOutput.PropertyLegalPartyName_NameSeq > 0
) ,
t AS ( SELECT *
FROM tTax.PropertyLegalPartyName t WITH ( FORCESEEK, INDEX = 1 )
WHERE EXISTS ( SELECT 1
FROM @VtuInputKeys v
WHERE v.CntyCd = t.CntyCd
AND v.PclId = t.PclId
AND v.PclSeqNbr = t.PclSeqNbr )
AND NameTypId = 2
)
MERGE t
USING RetPropertyLegalPartyName AS s
ON t.CntyCd = s.CntyCd
AND t.PclId = s.PclId
AND t.PclSeqNbr = s.PclSeqNbr
AND t.NameTypId = s.NameTypId
AND t.NameSeq = s.NameSeq
WHEN MATCHED AND t.AKAName IS NULL
AND s.AKAName IS NOT NULL
OR t.AKAName IS NOT NULL
AND s.AKAName IS NULL
OR t.AKAName <> s.AKAName
OR t.AKANameTypCd IS NULL
AND s.AKANameTypCd IS NOT NULL
OR t.AKANameTypCd IS NOT NULL
AND s.AKANameTypCd IS NULL
OR t.AKANameTypCd <> s.AKANameTypCd
OR t.CareOfName IS NULL
AND s.CareOfName IS NOT NULL
OR t.CareOfName IS NOT NULL
AND s.CareOfName IS NULL
OR t.CareOfName <> s.CareOfName
OR t.CorpInd IS NULL
AND s.CorpInd IS NOT NULL
OR t.CorpInd IS NOT NULL
AND s.CorpInd IS NULL
OR t.CorpInd <> s.CorpInd
OR t.DBAName IS NULL
AND s.DBAName IS NOT NULL
OR t.DBAName IS NOT NULL
AND s.DBAName IS NULL
OR t.DBAName <> s.DBAName
OR t.EtConInd IS NULL
AND s.EtConInd IS NOT NULL
OR t.EtConInd IS NOT NULL
AND s.EtConInd IS NULL
OR t.EtConInd <> s.EtConInd
OR t.EtUxInd IS NULL
AND s.EtUxInd IS NOT NULL
OR t.EtUxInd IS NOT NULL
AND s.EtUxInd IS NULL
OR t.EtUxInd <> s.EtUxInd
OR t.EtvirInd IS NULL
AND s.EtvirInd IS NOT NULL
OR t.EtvirInd IS NOT NULL
AND s.EtvirInd IS NULL
OR t.EtvirInd <> s.EtvirInd
OR t.FullName IS NULL
AND s.FullName IS NOT NULL
OR t.FullName IS NOT NULL
AND s.FullName IS NULL
OR t.FullName <> s.FullName
OR t.OwnrShipRightsCd IS NULL
AND s.OwnrShipRightsCd IS NOT NULL
OR t.OwnrShipRightsCd IS NOT NULL
AND s.OwnrShipRightsCd IS NULL
OR t.OwnrShipRightsCd <> s.OwnrShipRightsCd
OR t.PCTOwnrship IS NULL
AND s.PCTOwnrship IS NOT NULL
OR t.PCTOwnrship IS NOT NULL
AND s.PCTOwnrship IS NULL
OR t.PCTOwnrship <> s.PCTOwnrship
OR t.RelTypCd IS NULL
AND s.RelTypCd IS NOT NULL
OR t.RelTypCd IS NOT NULL
AND s.RelTypCd IS NULL
OR t.RelTypCd <> s.RelTypCd
THEN UPDATE
SET t.AKAName = s.AKAName
, t.AKANameTypCd = s.AKANameTypCd
, t.CareOfName = s.CareOfName
, t.CorpInd = s.CorpInd
, t.DBAName = s.DBAName
, t.EtConInd = s.EtConInd
, t.EtUxInd = s.EtUxInd
, t.EtvirInd = s.EtvirInd
, t.FullName = s.FullName
, t.OwnrShipRightsCd = s.OwnrShipRightsCd
, t.PCTOwnrship = s.PCTOwnrship
, t.RelTypCd = s.RelTypCd
, t.UpdateID = s.UpdateID
, t.UpdateTimestamp = s.UpdateTimestamp
WHEN NOT MATCHED
THEN INSERT (
CntyCd
, PclId
, PclSeqNbr
, NameTypId
, NameSeq
, AKAName
, AKANameTypCd
, CareOfName
, CorpInd
, DBAName
, EtConInd
, EtUxInd
, EtvirInd
, FullName
, OwnrShipRightsCd
, PCTOwnrship
, RelTypCd
, UpdateID
, UpdateTimestamp
)
VALUES ( s.CntyCd
, s.PclId
, s.PclSeqNbr
, s.NameTypId
, s.NameSeq
, s.AKAName
, s.AKANameTypCd
, s.CareOfName
, s.CorpInd
, s.DBAName
, s.EtConInd
, s.EtUxInd
, s.EtvirInd
, s.FullName
, s.OwnrShipRightsCd
, s.PCTOwnrship
, s.RelTypCd
, s.UpdateID
, s.UpdateTimestamp
)
WHEN NOT MATCHED BY SOURCE
THEN DELETE
OPTION
( RECOMPILE ) ;Gokhan Varol