स्नैपशॉट अलगाव स्तर का उपयोग करके tempdb में बहुत अधिक भार जोड़ दिया जाएगा क्योंकि आपका डेटाबेस लोड बढ़ता है।
लॉकिंग विधियों को बदलना प्रश्नों में संकेतों को लॉक करके या संग्रहीत प्रक्रिया या कनेक्शन के लिए सामान्य रूप से इस्लावल लेवल को बदलकर किया जाता है। यह सेट ISOLATION LEVEL कमांड के साथ किया जाता है, या .NET में कनेक्शन ऑब्जेक्ट पर अलगाव स्तर को बदलकर किया जाता है।
यदि आप चाहते हैं कि SQL सर्वर डिफ़ॉल्ट पृष्ठ स्तर (यानी पंक्ति स्तर लॉकिंग) के अलावा किसी स्तर पर अपनी लॉकिंग को संभालने के लिए चाहता है जिसे आपके भीतर के भीतर (ROWLOCK) संकेत का उपयोग करके कथन स्तर द्वारा एक कथन पर संभाला जाना है बयान।
UPDATE YourTable (WITH ROWLOCK)
SET Col2 = 3
WHERE Col1 = 'test'
कोई वैश्विक इस लॉकिंग स्तर बदलने के लिए सेटिंग है, और अगर चप्पू-आंकड़ा स्नैपशॉट अलगाव स्तर संचालन के साथ संयोजन में प्रयोग किया जाता है अभी भी पृष्ठ के स्तर पर किया जाएगा के रूप में पूरे पृष्ठ है के लिए रवाना कॉपी करने के लिए tempdb डेटाबेस तब अद्यतन किया गया है जब पुराने संस्करण को tempdb डेटाबेस से हटा दिया जाना है।
ठीक है, लेकिन फिर मैं कैसे देख सकता हूं कि मौजूदा अलगाव स्तर कौन सा है? और क्या यह अलगाव स्तर केवल लेनदेन में चल रहे प्रश्नों या सभी प्रश्नों पर लागू होता है? – Allrameest
आप डीबीसीसी उपयोगकर्ता विकल्प चला सकते हैं और लौटाई गई वस्तुओं में से एक "अलगाव स्तर" के लिए वर्तमान सेटिंग होगी। यहां एमएसडीएन लिंक है: http://msdn.microsoft.com/en-us/library/ms180065।एएसपीएक्स –
लेनदेन में अलगाव स्तर का उपयोग करने के लिए, अपने प्रश्न के दूसरे भाग के बारे में आपको "BEGIN TRAN" कथन से पहले "सेट ट्रांज़ेक्शन इज़ोलेशन लेवल स्नैपशॉट" का उपयोग करके इसे विशेष रूप से सेट करना होगा। इस प्रकार मेरी समझ यह है कि यह केवल उन लेन-देन प्रश्नों को प्रभावित करती है जिन्हें आप स्पष्ट रूप से घोषित करते हैं। इसका एक उदाहरण उपर्युक्त लिंक में है। इसे समझाते हुए एक अच्छा आलेख यहां भी पढ़ा जा सकता है: http://www.databasejournal.com/features/mssql/article.php/3566746/ नियंत्रण - लेनदेन- और- लॉक- भाग-- SQL-2005- स्नैपशॉट्स एचटीएम –