यह हमेशा बुरा नहीं होता है ।
निश्चित रूप से यह आपको बिना पढ़े मानों को पढ़ने की अनुमति देता है (जो कि कभी भी वापस लौटाया जा सकता है और इसलिए तार्किक रूप से कभी अस्तित्व में नहीं होता है) और साथ ही कई बार मानों को पढ़ने की अनुमति भी देता है।
केवल अलगाव स्तर जो गारंटी देते हैं कि आप ऐसी किसी भी विसंगति का सामना नहीं करेंगे, वे क्रमबद्ध / स्नैपशॉट हैं। एक पंक्ति में ले जाने से पहले (यदि किसी कुंजी अद्यतन के कारण) स्कैन से पहले इस पंक्ति तक पहुँचने पर दोहराए जाने योग्य रीड वैल्यू को याद किया जा सकता है, तो रीड कमिट के तहत दो बार पढ़ा जा सकता है यदि एक महत्वपूर्ण अपडेट के कारण आगे पढ़ने के लिए पहले की पंक्ति बढ़ती है।
nolock
हालाँकि, इन मुद्दों के तहत उत्पन्न होने की अधिक संभावना है , क्योंकि डिफ़ॉल्ट रूप से, इस अलगाव स्तर पर यह आवंटन आदेशित स्कैन का उपयोग करेगा जब यह अनुमान लगाता है कि 64 पृष्ठों से अधिक पढ़ा जाना है । अंकों की अद्यतन के कारण पृष्ठों के बीच आने वाली समस्याओं की श्रेणी के साथ-साथ ये आवंटन आदेशित स्कैन भी पृष्ठ विभाजन के साथ मुद्दों के लिए असुरक्षित होते हैं (जहां पंक्तियाँ याद की जा सकती हैं यदि नया आवंटित पृष्ठ बिंदु से पहले फ़ाइल में है यदि पहले से स्कैन किया गया पृष्ठ फ़ाइल में बाद के पृष्ठ पर विभाजित है) तो पहले से ही स्कैन या दो बार पढ़ा जा सकता है)।
सरल (एकल तालिका) के लिए कम से कम यह इन स्कैन के उपयोग को हतोत्साहित और एक कुंजी पर स्कैन का आदेश दिया पाने के लिए संभव है प्रश्नों nolock
बस एक जोड़कर ORDER BY index_key
क्वेरी के लिए इतना है कि Ordered
की संपत्ति IndexScan
है true
।
लेकिन अगर आपके रिपोर्टिंग एप्लिकेशन को बिल्कुल सटीक आंकड़ों की आवश्यकता नहीं है और ऐसी विसंगतियों की अधिक संभावना को सहन कर सकते हैं तो यह स्वीकार्य हो सकता है।
लेकिन निश्चित रूप से आपको इसे सभी प्रश्नों पर इस उम्मीद में नहीं करना चाहिए कि यह जादू "टर्बो" बटन है। साथ ही उस अलगाव के स्तर पर विसंगतिपूर्ण परिणामों के सामना करने की अधिक संभावना या कोई परिणाम नहीं मिला ("डेटा आंदोलन के कारण NOLOCK के साथ स्कैन जारी नहीं रख सका" त्रुटि) यहां तक कि ऐसे मामले भी हैं जहां प्रदर्शन nolock
बहुत खराब हो सकता है ।