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

NOLOCK संकेत का उपयोग करके गतिरोध से बचना

RDBMS पर समसामयिक गतिरोध जो SQL सर्वर/Sybase की तरह लॉक होते हैं, अपेक्षित हैं।

मेरे MSDN "हैंडलिंग डेडलॉक" .मूल रूप से, SQLException की जांच करें और शायद आधे सेकंड बाद, पुनः प्रयास करें।

अन्यथा, आपको अपने कोड की समीक्षा करनी चाहिए ताकि तालिकाओं की सभी एक्सेस एक ही क्रम में हों। या आप SET DEADLOCK_PRIORITY का उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि कौन शिकार बनता है।

SQL सर्वर के लिए MSDN पर "मिनिमाइज़िंग डेडलॉक" है। जो शुरू होता है

इसमें "एक निचले अलगाव स्तर का उपयोग करें" का भी उल्लेख है जो मुझे पसंद नहीं है (यहां SO पर जितने SQL प्रकार हैं) और यह आपका प्रश्न है। मत करो इसका जवाब है... :-)

नोट:MVCC RDBMS टाइप करें (Oracle, Postgres) में यह समस्या नहीं है। देखें http://en.wikipedia.org/wiki/ACID#Locking_vs_multiversioning लेकिन MVCC में अन्य समस्याएं हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE ()), 0) क्या कोई मुझे यह समझा सकता है

  2. SQL सर्वर का अजीब व्यवहार जब XML में नोड्स के मानों का योग करता है

  3. FORMAT () का उपयोग करके SQL सर्वर में किसी संख्या पर सशर्त स्वरूपण कैसे लागू करें

  4. UniqueIdentifier क्लस्टर इंडेक्स पर NewSequentialId

  5. SQL सर्वर में डेटाटाइम बनाम डेटाटाइम 2:क्या अंतर है?