Issue: the holdlock script has locking the multi-thread(10) insert/update
We would like to revise the multi-thread script to from (HOLDLOCK) to (UPDLOCK, SERIALIZABLE)
Original script:
MERGE testtable WITH (HOLDLOCK) AS t
USING (SELECT @P0 hjmpTS, @P1 createdTS, @P2 modifiedTS, @P3 TypePkString, @P4 OwnerPkString, @P5 PK, @P6 sealed, @P7 uniqueid, @P8 p_itemcode, @P9 p_bucketuid, @P10 aCLTS, @P11 propTS) AS s ON ( t.PK = s.PK )
WHEN MATCHED THEN UPDATE
SET hjmpTS = s.hjmpTS, createdTS = s.createdTS, modifiedTS = s.modifiedTS, TypePkString = s.TypePkString, OwnerPkString = s.OwnerPkString, PK = s.PK, sealed = s.sealed, uniqueid = s.uniqueid, p_itemcode = s.p_itemcode, p_bucketuid = s.p_bucketuid, aCLTS = s.aCLTS, propTS = s.propTS
WHEN NOT MATCHED THEN INSERT
(hjmpTS, createdTS, modifiedTS, TypePkString, OwnerPkString, PK, sealed, uniqueid, p_itemcode, p_bucketuid, aCLTS, propTS) VALUES (s.hjmpTS, s.createdTS, s.modifiedTS, s.TypePkString, s.OwnerPkString, s.PK, s.sealed, s.uniqueid, s.p_itemcode, s.p_bucketuid, s.aCLTS, s.propTS);