NOLOCK
क्वेरी के उस भाग पर लागू नहीं होता जो संशोधित की जाने वाली तालिका का संदर्भ देता है। SQL सर्वर अपडेट स्टेटमेंट में परीक्षण के दौरान प्रत्येक पंक्ति को संक्षेप में यू-लॉक करें। यह एक गतिरोध से बचाव तंत्र है। यह पढ़ने के लिए प्रत्येक एस-लॉक पंक्ति में एकाधिक अपडेट को रोकता है और फिर इसे एक्स-लॉक करने का प्रयास करता है।
आप यू-लॉक को AFAIK से दूर नहीं कर सकते। लेकिन आप स्वयं शामिल होकर यू-लॉक की गई पंक्तियों की मात्रा को न्यूनतम से कम कर सकते हैं:
update t1
set ...
from T t1 with (rowlock)
where t1.ID in (select TOP 5 ID from T t2 with (nolock) where ... order by ...)
यह थोड़ा ओवरहेड जोड़ता है लेकिन यह आपको NOLOCK
. का उपयोग करने की अनुमति देता है पढ़ने के लिए।
पढ़ने के लिए स्नैपशॉट अलगाव का उपयोग करने पर विचार करें। NOLOCK
कुछ समस्याएं हैं, जैसे कि प्रश्नों का बेतरतीब ढंग से निरस्त होना।