खोज…


टिप्पणियों

मुझे यह लिंक मिला - यह एक संदर्भ के रूप में उपयोगी है: "अलगाव के स्तर"

अलगाव स्तर सेट करने के उदाहरण

अलगाव स्तर सेट करने का उदाहरण:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT * FROM Products WHERE ProductId=1;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; --return to the default one
  1. READ UNCOMMITTED - का अर्थ है कि वर्तमान लेनदेन में एक क्वेरी संशोधित डेटा को किसी अन्य लेनदेन से एक्सेस नहीं कर सकती है जो अभी तक प्रतिबद्ध नहीं है - कोई गंदा नहीं पढ़ता है! लेकिन, गैर-पढ़े जाने योग्य और प्रेत रीड संभव हैं, क्योंकि डेटा अभी भी अन्य लेनदेन द्वारा संशोधित किया जा सकता है।

  2. REPEATABLE READ - इसका मतलब है कि वर्तमान लेनदेन में एक क्वेरी किसी अन्य लेनदेन से संशोधित डेटा तक नहीं पहुंच सकती है जो अभी तक प्रतिबद्ध नहीं है - कोई गंदा नहीं पढ़ता है! कोई भी अन्य लेनदेन वर्तमान लेनदेन द्वारा पढ़े जा रहे डेटा को पूरा होने तक संशोधित नहीं कर सकता है, जो NONREPEATABLE रीड को समाप्त करता है। लेकिन, यदि कोई अन्य लेन-देन नई ROWS सम्मिलित करता है और क्वेरी को अधिक निष्पादित किया जाता है, तो एक बार, प्रेत पंक्तियाँ दूसरी रीडिंग शुरू कर सकती हैं (यदि यह क्वेरी के विवरण से मेल खाती है)।

  3. SNAPSHOT - केवल क्वेरी की शुरुआत में मौजूद डेटा को वापस करने में सक्षम है। डेटा की स्थिरता सुनिश्चित करता है। यह गंदे रीड्स, नॉनप्रेटेबल रीड्स और फैंटम रीड्स को रोकता है। उस का उपयोग करने के लिए - DB विन्यास की आवश्यकता:

ALTER DATABASE DBTestName SET ALLOW_SNAPSHOT_ISOLATION ON;GO;
SET TRANSACTION ISOLATION LEVEL SNAPSHOT;
  1. READ COMMITTED - SQL सर्वर का डिफ़ॉल्ट अलगाव। यह उस डेटा को पढ़ने से रोकता है जो किसी अन्य लेनदेन द्वारा प्रतिबद्ध होने तक बदल जाता है। यह तालिकाओं पर साझा लॉकिंग और पंक्ति संस्करण का उपयोग करता है जो गंदे रीड्स को रोकता है। यह DB कॉन्फ़िगरेशन READ_COMMITTED_SNAPSHOT पर निर्भर करता है - यदि सक्षम - पंक्ति संस्करण का उपयोग किया जाता है। सक्षम करने के लिए - इसका उपयोग करें:
ALTER DATABASE DBTestName SET ALLOW_SNAPSHOT_ISOLATION ON;GO;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED; --return to the default one
  1. SERIALIZABLE - लेन-देन के अंत तक अधिग्रहीत और धारण किए गए भौतिक ताले का उपयोग करता है, जो गंदे रीड्स, प्रेत रीड, नॉन-रीडेबल रीड को रोकता है। लेकिन, यह डेटाबेस के प्रदर्शन पर प्रभाव डालता है, क्योंकि समवर्ती लेनदेन क्रमबद्ध होते हैं और एक-एक करके निष्पादित होते हैं।
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE ;


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow