आपको या तो अधिक या कम ताले रखने की आवश्यकता है।
सबसे आसान जवाब है या तो NOLOCK
. पर जाएं (सर्वश्रेष्ठ प्रदर्शन) या TABLOCKX
(सोचने के बिना संगति)।
यदि आप with (nolock)
. का उपयोग नहीं कर सकते हैं संगतता आवश्यकताओं के कारण, आप with (tablockx)
जोड़ सकते हैं .इसका प्रभावी अर्थ यह होगा कि एक समय में केवल एक थ्रेड समान कथनों को निष्पादित कर सकता है - कोई समरूपता नहीं होगी।
विकल्प यह है कि आप अपनी आवश्यकताओं का अधिक विस्तार से विश्लेषण करें, जो यह समझे बिना नहीं किया जा सकता है कि आप तालिका को अपडेट क्यों कर रहे हैं, डेटा किस लिए है आदि।
उदाहरण के लिए, क्या यह कथन वास्तव में लेन-देन में होना चाहिए? इसमें हाउसकीपिंग जैसी महक आती है:
DELETE FROM [dbo].[t_Log_2]
WHERE [idtm]<'2011-03-12 08:41:57';
यदि आप इसे लेन-देन से निकाल लेते हैं, और इसे एक अलग बैच में रखते हैं, तो आप पाएंगे कि समस्याएं दूर हो गई हैं।