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

Oracle में लॉक की गई पंक्तियों को कैसे खोजें

Oracle की लॉकिंग अवधारणा अन्य प्रणालियों से काफी अलग है।

जब Oracle . में एक पंक्ति लॉक हो जाता है, रिकॉर्ड को नए मान (यदि कोई हो) के साथ अपडेट किया जाता है और, इसके अलावा, एक लॉक (जो अनिवार्य रूप से रोलबैक सेगमेंट में रहने वाले लेनदेन लॉक का सूचक होता है) को सीधे रिकॉर्ड में रखा जाता है।

इसका मतलब है कि Oracle . में रिकॉर्ड लॉक करना इसका अर्थ है रिकॉर्ड के मेटाडेटा को अपडेट करना और एक तार्किक पेज राइट जारी करना। उदाहरण के लिए, आप SELECT FOR UPDATE . नहीं कर सकते हैं रीड ओनली टेबलस्पेस पर।

इसके अलावा, रिकॉर्ड स्वयं प्रतिबद्ध होने के बाद अपडेट नहीं होते हैं:इसके बजाय, रोलबैक सेगमेंट अपडेट किया जाता है।

इसका मतलब यह है कि प्रत्येक रिकॉर्ड में लेन-देन के बारे में कुछ जानकारी होती है, जिसने इसे अंतिम बार अपडेट किया था, भले ही लेन-देन की मृत्यु हो गई हो। यह पता लगाने के लिए कि लेन-देन जीवित है या नहीं (और, इसलिए, यदि रिकॉर्ड जीवित है या नहीं), तो रोलबैक खंड पर जाना आवश्यक है।

ओरेकल के पास पारंपरिक लॉक मैनेजर नहीं है, और इसका मतलब है कि सभी लॉक की सूची प्राप्त करने के लिए सभी ऑब्जेक्ट्स में सभी रिकॉर्ड स्कैन करने की आवश्यकता होती है। इसमें बहुत अधिक समय लगेगा।

आप कुछ विशेष लॉक प्राप्त कर सकते हैं, जैसे लॉक किए गए मेटाडेटा ऑब्जेक्ट (v$locked_object . का उपयोग करके) ), लॉक प्रतीक्षा (v$session . का उपयोग करके) ) आदि, लेकिन डेटाबेस में सभी वस्तुओं पर सभी तालों की सूची नहीं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle अनुप्रयोगों R12 में APPL_TOP का मंचन किया गया

  2. कर्मचारी विवरण मुद्रित करने के लिए पीएल/एसक्यूएल कार्यक्रम

  3. डीबी नियंत्रण अपनी मृत्यु के करीब

  4. पिछले महीने या वर्ष के गुम डेटा को संचयी रूप से जोड़ें

  5. स्वयं संदर्भ तालिका पर SQL पुनरावर्ती क्वेरी (ओरेकल)