आमतौर पर कोई है, लेकिन यह (SQL सर्वर के लिए सबसे अक्सर इस्तेमाल जवाब!) निर्भर करता है
एसक्यूएल सर्वर किसी तरह से एक लेनदेन में शामिल डेटा लॉक करने के लिए होगा। जब आप एक संशोधन करते हैं, तो इसे डेटा में डेटा को लॉक करना होगा, और किसी भी प्रभावित इंडेक्स को डेटा लॉक करना होगा। समेकन सुधारने के लिए, कई प्रक्रियाओं को चलाने की अनुमति देने के लिए सर्वर लॉकिंग के कई "ग्रैन्युलरिटी" हैं, पंक्ति लॉक, पेज लॉक और टेबल लॉक आम हैं (और भी हैं)। लॉकिंग का कौन सा पैमाने खेल में है इस पर निर्भर करता है कि सर्वर किसी दिए गए अपडेट को निष्पादित करने का निर्णय कैसे लेता है। जटिल चीजें, साझा, अनन्य और इरादे विशेष जैसे ताले के वर्गीकरण भी हैं, जो नियंत्रित करते हैं कि लॉक ऑब्जेक्ट को पढ़ा जा सकता है और/या संशोधित किया जा सकता है या नहीं।
यह मेरा अनुभव रहा है कि SQL सर्वर मुख्य रूप से तालिका के छोटे हिस्सों में परिवर्तन के लिए पृष्ठ ताले का उपयोग करता है, और कुछ थ्रेसहोल्ड स्वचालित रूप से तालिका लॉक में बढ़ जाएगा, यदि तालिका का एक बड़ा हिस्सा प्रभावित होता है (आंकड़ों से) प्रभावित होने के लिए एक अद्यतन या हटाकर। विचार यह है कि बड़े अपडेट के लिए हजारों व्यक्तिगत पंक्ति या पेज लॉक प्राप्त करने और प्रबंधित करने से तालिका (एक ताला) लॉक करना तेज़ है।
यह देखने के लिए कि आपके विशिष्ट मामले में क्या हो रहा है, आपको क्वेरी तर्क देखना होगा, और जब आपकी सामग्री चल रही है, sys.dm_tran_locks, sys.dm_os_waiting_tasks या अन्य DMV में लॉकिंग/अवरुद्ध स्थितियों की जांच करें। आप यह जानना चाहते हैं कि आपकी प्रत्येक प्रक्रिया में कौन सा कदम है, यह पता लगाने के लिए कि कोई दूसरे को अवरुद्ध क्यों कर रहा है, वास्तव में क्या लॉक हो रहा है।
मैं हमेशा लॉक संकेतों का उपयोग करता हूं, इसलिए मैं स्पष्ट रूप से एक पगेलॉक – Middletone