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

प्राथमिक कुंजी इंडेक्स पर रेंज लॉक से गतिरोध

यह क्लासिक गतिरोध है जब एक प्रक्रिया (पीड़ित) serializable . पर पढ़ती है स्तर और दूसरा एक ही संकुल तालिका को अद्यतन करता है।

आप भ्रमित हैं कि क्या परिवर्तित किया गया है।

पहली प्रक्रिया ("process5e13b88") ने RangeS-S . हासिल कर लिया है लॉक करें और दूसरे RangS-S की प्रतीक्षा करें लॉक (जहां X . है अद्यतन प्रक्रिया का ताला), यह कुछ भी नहीं परिवर्तित करता है।

दूसरे "process5e45b88" ने X . हासिल कर लिया है एक कुंजी और U . पर लॉक करें किसी अन्य कुंजी पर और इसे X . में बदलना चाहता है लेकिन ऐसा नहीं हो सकता क्योंकि RangeS-S . है ताला।

मैं वह तस्वीर संलग्न करता हूं जहां आप देख सकते हैं कि एक प्रक्रिया केवल RangeS-S चाहती है और प्राप्त करती है ताले और दूसरा केवल X ताले।

जब आप RangeS-U see देखते हैं लॉक इसका मतलब है कि RangeS-S . है सीमा पर लॉक करें लेकिन कुंजी में ही U है लॉक करें



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर (T-SQL) में सभी डेटाबेस मेल संदेशों की स्थिति की जाँच करें

  2. SQL सर्वर में बाधाओं की जाँच करें

  3. जहां क्लॉज में स्थानीय चर का उपयोग करने का विकल्प

  4. मैं गिनती (*) कॉलम में उपनाम का उपयोग क्यों नहीं कर सकता और इसे एक खंड में संदर्भित कर सकता हूं?

  5. क्या यह SQL कीवर्ड (आरक्षित शब्द) प्राप्त करने का एक प्रोग्रामेटिक तरीका है