मैंने एमएसडीएन ट्रांजैक्ट-एसक्यूएल संदर्भ में ट्रंकेट तालिका की खोज की। यहां रुचि रखने वालों के लिए टिप्पणियां हैं:
ट्रंकेट तालिका किसी भी प्रकार के खंड के साथ विलम्ब विवरण को कार्यात्मक रूप से समान नहीं है: दोनों तालिका में सभी पंक्तियों को हटा दें। लेकिन ट्रंकेट टेबल तेजी से है और DELETE की तुलना में कम सिस्टम और लेनदेन लॉग संसाधनों का उपयोग करता है।
DELETE कथन एक समय में पंक्तियों को हटा देता है और प्रत्येक हटाई गई पंक्ति के लिए लेनदेन लॉग में एक प्रविष्टि रिकॉर्ड करता है। ट्रंकेट टेबल तालिका के डेटा को संग्रहीत करने के लिए उपयोग किए जाने वाले डेटा पृष्ठों को हटाकर डेटा को हटा देता है, और लेन-देन लॉग में केवल पृष्ठ हटाना रिकॉर्ड किया जाता है।
ट्रंकेट टेबल तालिका से सभी पंक्तियों को हटा देता है, लेकिन तालिका संरचना और इसके कॉलम, बाधाएं, इंडेक्स और इतने पर रहते हैं। नई पंक्तियों के लिए पहचान द्वारा उपयोग किया गया काउंटर कॉलम के लिए बीज पर रीसेट किया जाता है। यदि आप पहचान काउंटर को बनाए रखना चाहते हैं, तो इसके बजाय DELETE का उपयोग करें। यदि आप तालिका परिभाषा और उसके डेटा को हटाना चाहते हैं, तो ड्रॉप तालिका विवरण का उपयोग करें।
आप एक विदेशी कुंजी बाधा द्वारा संदर्भित तालिका पर TRUNCATE तालिका का उपयोग नहीं कर सकते हैं; इसके बजाय, WHERE खंड के बिना DELETE कथन का उपयोग करें। चूंकि TRUNCATE तालिका लॉग नहीं है, यह ट्रिगर को सक्रिय नहीं कर सकता है।
ट्रंकेट टेबल का उपयोग अनुक्रमित दृश्य में भाग लेने वाली तालिकाओं पर नहीं किया जा सकता है।
स्रोत
2008-09-15 15:50:33
TRUNCATE सबसे तेज़ है, बस याद रखें कि आप घटना में कुछ रोलबैक करने में सक्षम नहीं होंगे। –
TRUNCATE के बारे में एक नोट, यदि कॉलम में से कोई एक पहचान कॉलम है TRUNCATE उस कॉलम की SEED को प्रारंभिक मान (तालिका को परिभाषित करते समय निर्दिष्ट) पर रीसेट कर देगा। तो एक मायने में यह एक ब्रांड नई टेबल के साथ शुरू करने की तरह है। मुझे टेबल – kristof
टेबल को दोबारा बदलने से पहले डेटा की सफाई के लिए उपयोगी लगता है हां, और ओरेकल वर्ल्ड में हम इसे वॉटरमार्क शिफ्ट कहते हैं, दूसरों के बारे में निश्चित नहीं है। –