2009-06-08 10 views
7

मैं आमतौर पर अपने संग्रहीत प्रोसेस (BEGIN ट्रांज़ेक्शन .... COMMIT) में पूरी तरह से स्पष्ट लेनदेन का उपयोग करता हूं। मैं बस एक पुराने व्यक्ति में भाग गया जो कोड में कुछ स्थानों पर "चेकपॉइंट" का उपयोग करता है।क्या CHECKPOINT TSQL में COMMIT के समान काम करता है?

यह वही काम नहीं करेगा, है ना ?? यहां तक ​​कि यदि डेटाबेस सरल मोड में है, तो पूरी चीज अभी भी एक बड़े लेनदेन के रूप में चलती है, यहां तक ​​कि बीच में चिपकने वाले चेकपॉइंट्स के समूह के साथ भी?

उत्तर

11

चेकपॉइंट सिर्फ डिस्क पर गंदे पृष्ठ लिखता है, बिल्कुल वही नहीं। http://msdn.microsoft.com/en-us/library/ms188748.aspx

+0

यही मैंने सोचा था। कोड को संशोधित करने पर काम कर रहा है ... – BradC

7

सं

CHECKPOINT अलग और स्वतंत्र/रोलबैक के लिए प्रतिबद्ध है।

यह आलेख "SQL Server 2000 I/O Basics" प्रदर्शित करता है (अभी भी SQL सर्वर 2005 आदि के लिए ठीक है)। (पूर्ण, सरल, थोक लॉग इन)

  • आप जांच की चौकी और डिस्क को लिख सकते हैं लेकिन बाद में रोलबैक

  • शुरू/COMMIT वसूली मॉडल के साथ कुछ नहीं है। TXN को या तो एक के रूप में पूरा या असफल होना चाहिए।

  • बिजली विफलता के मामले में, डेटा जांच के कारण डिस्क पर हो सकता है लेकिन असामान्य इसलिए डेटाबेस स्टार्टअप के हिस्से के रूप में वापस लुढ़का जाता है।

पुराने दिनों में, यह आसान वसूली मॉडल के लिए try and "empty" the log of committed entries इस्तेमाल किया गया था। चेकपॉइंट ने उन्हें त्याग दिया। पूर्ण वसूली मॉडल के लिए, आपको बैकअप लॉग की आवश्यकता होगी।

संबंधित मुद्दे