Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

क्या SQL सर्वर में पंक्ति स्तर लॉकिंग को बाध्य करना संभव है?

आप ROWLOCK संकेत का उपयोग कर सकते हैं, लेकिन AFAIK SQL संसाधनों पर कम चलने पर इसे आगे बढ़ाने का निर्णय ले सकता है

डोको से:

<ब्लॉकक्वॉट>

ROWLOCK निर्दिष्ट करता है कि जब पेज या टेबल लॉक को सामान्य रूप से लिया जाता है तो रो लॉक लिया जाता है। जब निर्दिष्ट लेनदेन SNAPSHOTisolation स्तर पर चल रहा हो, तब तक पंक्ति लॉक नहीं लिया जाता है जब तक कि ROWLOCK को अन्य तालिका संकेतों के साथ संयोजित नहीं किया जाता है जिसके लिए UPDLOCK और HOLDLOCK जैसे लॉक की आवश्यकता होती है।

और

<ब्लॉकक्वॉट>

लॉक संकेत ROWLOCK, UPDLOCK, और XLOCK जो पंक्ति-स्तरीय लॉक प्राप्त करते हैं, वास्तविक डेटा पंक्तियों के बजाय इंडेक्स कुंजियों पर लॉक लगा सकते हैं। उदाहरण के लिए, यदि एटेबल में एक गैर-संकुल सूचकांक है, और एक लॉक संकेत का उपयोग करके एक चयन कथन एक कवरिंग इंडेक्स द्वारा नियंत्रित किया जाता है, तो आधार तालिका में डेटारो के बजाय कवरिंग इंडेक्स में इंडेक्स कुंजी पर एक लॉक प्राप्त किया जाता है।

और अंत में यह SQL Server 2005 में लॉक एस्केलेशन के बारे में बहुत गहराई से स्पष्टीकरण देता है जिसे SQL Server 2008 में बदल दिया गया था।

वहाँ भी है, बहुत गहराई में:डेटाबेस इंजन में लॉक करना (ऑनलाइन पुस्तकों में)

तो, सामान्य तौर पर

UPDATE
Employees WITH (ROWLOCK)
SET Name='Mr Bean'
WHERE Age>93

ठीक होना चाहिए, लेकिन सर्वर पर इंडेक्स और लोड के आधार पर यह पेज लॉक तक बढ़ सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SIN () SQL सर्वर में उदाहरण

  2. TSQL - BEGIN .. END ब्लॉक के अंदर GO का उपयोग कैसे करें?

  3. SQL सर्वर में स्ट्रिंग और नल मानों को कैसे संयोजित करें

  4. Sql सर्वर कॉम्पैक्ट संस्करण में LIKE के साथ पैरामीटर का उपयोग कैसे करें

  5. SQL सर्वर में सभी अक्षम विदेशी कुंजी बाधाओं को कैसे वापस करें (T-SQL उदाहरण)