SQL सर्वर 2005 में लेनदेन अलगाव स्तर के लिए स्कोपिंग नियम क्या हैं? मुझे पता है कि विभिन्न स्तरों का क्या मतलब है, लेकिन मैन्युअल रूप से चलाने वाली स्क्रिप्ट के बाहर उन्हें सही ढंग से लागू करने का तरीका नहीं है। मुझे उत्पादन-गुणवत्ता कोड में व्यावहारिक उपयोग के लिए एक गाइड नहीं मिल रहा है।लेनदेन अलगाव स्तर स्कोप्स
जाहिर है, गुंजाइश शुरू होती है जब आप इस प्रकार का आदेश का उपयोग करें:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
लेकिन जहां यह खत्म हो जाता है? यदि मैं एक संग्रहित प्रक्रिया में आईएसओ स्तर सेट करता हूं और फिर वह प्रो किसी अन्य को कॉल करता है, तो क्या नेस्टेड प्रो इसे प्राप्त करता है? इससे भी बेहतर, अगर मैं नेस्टेड प्रो के अंदर आईएसओ स्तर बढ़ाता हूं तो क्या यह कॉलिंग प्रो में वापस ले जा रहा है? लेनदेन आदेश जैसे BEGIN TRAN, रोलबैक, और COMMIT कोई अंतर करते हैं?
जब किसी संग्रहित प्रो को किसी एप्लिकेशन या एजेंट नौकरी द्वारा बुलाया जाता है तो क्या अलगाव स्तर में परिवर्तन कुछ तरीकों से जारी रहता है? क्या मुझे हमेशा प्रत्येक proc के अंत में प्रेषित डिफ़ॉल्ट रीड पर वापस जाना होगा?
मैं इसे विभिन्न परिस्थितियों में परीक्षण करता हूं लेकिन मुझे नहीं पता कि वर्तमान अलगाव स्तर क्या निर्धारित किया जाता है।
तथ्य यह है कि इसका दायरा मौजूदा लेनदेन से परे चला जाता है (और, वर्तमान "सत्र" से परे कनेक्शन पूलिंग के कारण) आपको जला सकता है। [इस पोस्ट] देखें (http://www.codeducky.org/mysterious-deadlocks-leaking-isolation-levels/) मैंने इस विषय पर लिखा था। – ChaseMedallion