डिलीट बनाम ट्रंकेट
दोनों SQL (स्ट्रक्चर क्वेरी लैंग्वेज) कमांड, डिलीट और ट्रंकेट का उपयोग डेटाबेस में टेबल में संग्रहीत डेटा से छुटकारा पाने के लिए किया जाता है। डिलीट एक डीएमएल (डेटा मैनिपुलेशन लैंग्वेज) स्टेटमेंट है और यह टेबल की कुछ या सभी पंक्तियों को हटा देता है। 'व्हेयर क्लॉज' का उपयोग उन पंक्तियों को निर्दिष्ट करने के लिए किया जाता है जिन्हें हटाने की आवश्यकता होती है, और यदि डिलीट स्टेटमेंट के साथ व्हेयर क्लॉज का उपयोग नहीं किया जाता है, तो यह तालिका के सभी डेटा को हटा देता है। Truncate एक DDL (डेटा डेफिनिशन लैंग्वेज) स्टेटमेंट है, और यह टेबल से पूरे डेटा को हटा देता है। ये दोनों आदेश तालिका संरचना और तालिका के संदर्भों को नष्ट नहीं करते हैं, और केवल आवश्यकतानुसार डेटा हटा दिया जाता है।
विवरण हटाएं
डिलीट स्टेटमेंट उपयोगकर्ता को एक निर्दिष्ट स्थिति के आधार पर डेटाबेस में मौजूदा तालिका से डेटा को हटाने की अनुमति देता है, और इस स्थिति को निर्धारित करने के लिए 'कहां क्लॉज' का उपयोग किया जाता है। डिलीट कमांड को लॉग निष्पादन के रूप में संदर्भित किया जाता है, क्योंकि यह एक समय में केवल एक पंक्ति को हटाता है, और लेनदेन लॉग में प्रत्येक पंक्ति को हटाने के लिए एक प्रविष्टि रखता है। तो, यह ऑपरेशन को धीमा करने का कारण बनता है। डिलीट एक डीएमएल स्टेटमेंट है, और इसलिए कमांड निष्पादित करते समय यह स्वचालित रूप से प्रतिबद्ध नहीं होता है। इसलिए, यदि आवश्यक हो, तो डेटा को फिर से एक्सेस करने के लिए डिलीट ऑपरेशन को वापस रोल किया जा सकता है। डिलीट कमांड के निष्पादन के बाद, परिवर्तनों को स्थायी रूप से सहेजने के लिए इसे कमिट या रोल बैक किया जाना चाहिए। डिलीट स्टेटमेंट डेटाबेस से टेबल की टेबल स्ट्रक्चर को नहीं हटाता है। साथ ही यह टेबल द्वारा उपयोग किए गए मेमोरी स्पेस को डिलीकेट नहीं करता है।
डिलीट कमांड के लिए विशिष्ट सिंटैक्स नीचे बताया गया है।
से हटाएं
या
कहां से हटाएं
छोटा वक्तव्य
Truncate स्टेटमेंट डेटाबेस में मौजूदा तालिका से सभी डेटा को हटा देता है, लेकिन यह समान तालिका संरचना, अखंडता बाधाओं, एक्सेस विशेषाधिकारों और अन्य तालिकाओं के संबंधों को भी बरकरार रखता है। इसलिए, तालिका को फिर से परिभाषित करने की आवश्यकता नहीं है, और पुरानी तालिका संरचना का उपयोग किया जा सकता है, यदि उपयोगकर्ता फिर से तालिका का पुन: उपयोग करना चाहता है। ट्रंकेट डेटा रखने के लिए उपयोग किए जाने वाले डेटा पेजों को हटाकर संपूर्ण डेटा को हटा देता है, और केवल इन पेज डीललोकेशन को लेन-देन लॉग में रखा जाता है। इसलिए, ट्रंकेट कमांड ऑपरेशन के लिए केवल कम सिस्टम और लेनदेन लॉग संसाधनों का उपयोग करता है, इसलिए यह अन्य संबंधित कमांडों की तुलना में तेज है। Truncate एक DDL कमांड है, इसलिए यह स्टेटमेंट के निष्पादन से पहले और बाद में ऑटो कमिटमेंट का उपयोग करता है। इसलिए, ट्रंकेट किसी भी तरह से डेटा को फिर से रोल बैक नहीं कर सकता है। यह निष्पादन के बाद तालिका द्वारा उपयोग की जाने वाली मेमोरी स्पेस जारी करता है। लेकिन विदेशी कुंजी बाधाओं द्वारा संदर्भित तालिकाओं पर Truncate कथन लागू नहीं किया जा सकता है।
Truncate स्टेटमेंट के लिए सामान्य सिंटैक्स निम्नलिखित है।
ट्रंकेट टेबल
डिलीट और ट्रंकेट में क्या अंतर है?
1. तालिका संरचना या तालिका के अन्य संदर्भों को नुकसान पहुंचाए बिना डेटाबेस में मौजूदा तालिकाओं से कमांड हटाएं और काटें।
2. हालाँकि, डिलीट कमांड का उपयोग केवल प्रासंगिक स्थिति का उपयोग करके तालिका में विशिष्ट पंक्तियों को हटाने के लिए किया जा सकता है, या बिना किसी शर्त के सभी पंक्तियों को हटाने के लिए किया जा सकता है, जबकि Truncate कमांड का उपयोग केवल तालिका में संपूर्ण डेटा को हटाने के लिए किया जा सकता है।
3. डिलीट एक डीएमएल कमांड है, और यदि आवश्यक हो तो यह ऑपरेशन को वापस रोल कर सकता है, लेकिन ट्रंकेट एक डीडीएल कमांड है, इसलिए यह एक ऑटो कमिट स्टेटमेंट है और इसे किसी भी तरह से वापस रोल नहीं किया जा सकता है। इसलिए डेटाबेस प्रबंधन में इस कमांड का सावधानीपूर्वक उपयोग करना महत्वपूर्ण है।
4. ट्रंकेट ऑपरेशन डिलीट ऑपरेशन की तुलना में कम सिस्टम संसाधनों और ट्रांजेक्शन लॉग संसाधनों की खपत करता है, इसलिए, ट्रंकेट को डिलीट की तुलना में तेज माना जाता है।
5. साथ ही, डिलीट टेबल द्वारा उपयोग किए गए स्थान को डिलीकेट नहीं करता है, जबकि ट्रंकेट निष्पादन के बाद उपयोग किए गए स्थान को मुक्त करता है, इसलिए डेटाबेस टेबल से संपूर्ण डेटा को हटाने के मामले में डिलीट कुशल नहीं है।
6. हालाँकि, जब तालिका को विदेशी कुंजी बाधा द्वारा संदर्भित किया जाता है, तो Truncate को उपयोग करने की अनुमति नहीं है, और उस स्थिति में, Truncate के बजाय Delete कमांड का उपयोग किया जा सकता है।
7. अंत में, इन दोनों कमांडों के डेटाबेस मैनेजमेंट सिस्टम में इन्हें लागू करने के फायदे और नुकसान भी हैं और उपयोगकर्ता को अच्छे परिणाम प्राप्त करने के लिए इन कमांडों का उचित उपयोग करने के बारे में पता होना चाहिए।