Je moet meer of minder sloten vasthouden.
Het gemakkelijkste antwoord is om ofwel NOLOCK
. te gaan (beste prestatie) of TABLOCKX
(consistentie zonder na te hoeven denken).
Als u with (nolock)
niet kunt gebruiken vanwege consistentievereisten kunt u with (tablockx)
. toevoegen .Dit betekent in feite dat slechts één thread tegelijkertijd dezelfde instructies kan uitvoeren - er zal geen gelijktijdigheid zijn.
Het alternatief is om uw vereisten veel gedetailleerder te analyseren, wat niet mogelijk is zonder te begrijpen waarom u de tabel bijwerkt, waar de gegevens voor zijn, enz.
Moet deze verklaring bijvoorbeeld echt in de transactie staan? Het ruikt naar huishouding:
DELETE FROM [dbo].[t_Log_2]
WHERE [idtm]<'2011-03-12 08:41:57';
Als u dat uit de transactie haalt en in een aparte batch plaatst, kunnen de problemen verdwijnen.