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

डेटाबेस में गतिरोध क्या है?

सामान्य तौर पर, गतिरोध का अर्थ है कि दो या दो से अधिक निकाय कुछ स्रोतों को अवरुद्ध कर रहे हैं, और उनमें से कोई भी समाप्त करने में सक्षम नहीं है, क्योंकि वे चक्रीय तरीके से स्रोतों को अवरुद्ध कर रहे हैं।

एक उदाहरण:मान लें कि मेरे पास टेबल ए और टेबल बी है, मुझे ए और फिर बी में कुछ अपडेट करने की ज़रूरत है और मैं उपयोग के समय दोनों को लॉक करने का फैसला करता हूं (यह वास्तव में बेवकूफ व्यवहार है, लेकिन यह अब इसका उद्देश्य पूरा करता है ) उसी समय, कोई दूसरा व्यक्ति विपरीत क्रम में वही काम करता है - पहले B को लॉक करता है, फिर A को लॉक करता है।

कालानुक्रमिक रूप से, ऐसा होता है:

proc1:लॉक ए

proc2:लॉक बी

proc1:लॉक B - proc2 के रिलीज़ होने तक प्रतीक्षा करना शुरू कर देता है B

proc2:लॉक A - proc1 के रिलीज़ होने तक प्रतीक्षा करना शुरू कर देता है

उनमें से कोई भी कभी खत्म नहीं होगा। यह गतिरोध है। व्यवहार में यह आमतौर पर टाइमआउट त्रुटियों में परिणत होता है क्योंकि यह किसी भी क्वेरी को हमेशा के लिए लटकाए रखना नहीं चाहता है, और अंतर्निहित सिस्टम (जैसे डेटाबेस) उन प्रश्नों को मार देगा जो समय पर समाप्त नहीं होते हैं।

गतिरोध का एक वास्तविक विश्व उदाहरण है जब आप अपने घर की चाबियों को अपनी कार में और अपनी कार की चाबियों को अपने घर में बंद कर देते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विंडोज़ 2012 पर सिस्टम डीएसएन के माध्यम से ओडीबीसी कनेक्शन का उपयोग करके SQL सर्वर 2008 से कनेक्ट करने में असमर्थ

  2. समय के लिए SQL क्वेरी इन/आउट उपस्थिति

  3. aspnet_regsql.exe का उपयोग कैसे करें

  4. Sql सर्वर रिकॉर्ड अपडेट नहीं कर रहा है

  5. कॉन्टेनेबल वाइल्डकार्ड वाक्यांश मिलान पर विफल रहता है?