नीचे कथन के बारे में REPEATABLE READS
डेटाबेस लेनदेन में विभिन्न अलगाव स्तर पर कुछ स्पष्टीकरण?
इस अलगाव स्तर में Wikipedia's Isolation article से लिखा है, एक ताला आधारित संगामिति नियंत्रण डीबीएमएस कार्यान्वयन पढ़ सकते हैं और ताले (चयनित डेटा पर अधिग्रहीत) बारे में लेन-देन के अंत तक रहता है। हालांकि, रेंज-लॉक प्रबंधित नहीं होते हैं, इसलिए प्रेत घटना को पढ़ सकता है (नीचे देखें)।
मेरा प्रश्न यह है कि लेनदेन क्रमशः शुरू होता है और अंत में होता है।
हम गैर repeatable का उदाहरण लेते हैं पढ़ता के साथ repeatable एक ही लिंक पर अलगाव स्तर पढ़ता है, मेरी समझ के अनुसार trnsaction 1 शुरू जब पहली क्वेरी निकाल दिया जाता है यानी SELECT * FROM users WHERE id = 1.
डीबीएमएस जब तक उन मेज पर ताला रखेंगे और जब तक लेनदेन समाप्त नहीं हो जाता है। यहां अंत तक मेरा मतलब है कि जब कनेक्शन रोलडबैक हो जाता है या SELECT * FROM users WHERE id = 1
के पूरा होने पर नहीं किया जाता है। उस समय तक लेनदेन 2 सही इंतजार करेगा?
प्रश्न 2: - अब अगर हम अलगाव के स्तर और उनके व्यवहार के रूप में नीचे दिए गए (एक ही लिंक पर)
Isolation level Dirty reads Non-repeatable Phantoms
Read Uncommitted may occur may occur may occur
Read Committed - may occur may occur
Repeatable Read - may occur -
Serializable - - -
मेरी समझ के अनुसार विचार करना सबसे विश्वसनीय है Serializable तो Repeatable पढ़ें और उसके बाद प्रतिबद्ध पढ़ें लेकिन फिर भी मैंने पढ़ी गई पढ़ाई का उपयोग करके अनुप्रयोगों को देखा है। ऐसा इसलिए है क्योंकि सीरियलज़ेबल और दोहराए जाने योग्य पढ़ने के प्रदर्शन की तुलना में खराब है क्योंकि धारावाहिक में यह अनुक्रमिक होगा और लेनदेन के मामले में किसी अन्य लेनदेन द्वारा लॉक जारी करने की प्रतीक्षा करनी होगी। सही? तो तीनों में से सर्वश्रेष्ठ प्राप्त करने के लिए हम अलगाव स्तर का उपयोग कर सकते हैं क्योंकि SELECT FOR UPDATE
(दोहराने योग्य पढ़ने को प्राप्त करने के लिए) के साथ प्रतिबद्ध पढ़ें। अगर हम चाहते हैं कि हम पढ़ने के मामले में प्रेत को अलगाव स्तर के मामले में कैसे पढ़ सकते हैं, तो हम निश्चित रूप से कैसे पढ़ सकते हैं?
देखें http://stackoverflow.com/questions/10935850/when 'चयन ... अद्यतन के लिए – Gili
की चर्चा के लिए-टू-यूज-टू-अपडेट-अपडेट-अपडेट तीनों में से सर्वश्रेष्ठ हम अलगाव स्तर का उपयोग कर सकते हैं क्योंकि अद्यतन के लिए चयन के साथ प्रतिबद्ध पढ़ें - यह डीडीएन्यूक्लियस जैसे जेडीओ दृढ़ता परतों का दृष्टिकोण है। वे प्रति लेनदेन के आधार पर "अद्यतन के लिए चयन" को नियंत्रित करने के लिए एक तंत्र प्रदान करते हैं। मेरा मानना है कि यह दृष्टिकोण "निचले" लेनदेन प्रकारों का उपयोग करते समय सीरियलज़ेबल लेनदेन लॉक तंत्र के लाभ प्रदान करेगा। – marcolopes
क्या आप सुनिश्चित हैं कि "दोहराने योग्य" अलगाव स्तर "लेन-देन योग्य" अलगाव स्तर के साथ लेनदेन में हो सकता है? इस आलेख में तालिका अलग है - http://www.oracle.com/technetwork/issue-archive/2010/10-jan/o65asktom-082389.html – naXa