2012-02-01 14 views
15

मेरे पास यह तालिका SQL Server 2008 R2 इंस्टेंस में है जिसमें मेरे पास एक निर्धारित प्रक्रिया है जो इसके खिलाफ रात में चलती है। तालिका किसी भी समय 500K रिकॉर्ड तक हो सकती है।छंटनी या ड्रॉप करें और तालिका बनाएं

  1. काटना तालिका
  2. ड्रॉप और टेबल को पुन: इस तालिका प्रसंस्करण के बाद मैं इसे से सभी पंक्तियों को दूर करने के लिए तो मैं सोच रहा हूँ जो निम्न विधियों में से कम से कम भूमि के ऊपर (यानी अत्यधिक लेन-देन के लिए लॉग प्रविष्टियों) का उत्पादन होता है की जरूरत है

तालिका की सामग्री को हटाने से समय और अतिरिक्त लेनदेन लॉग प्रविष्टियां होती हैं।

आम सहमति छंटनी प्रतीत होती है, धन्यवाद सबको!

+4

[यहां लॉगिंग की मात्रा के बीच कुछ तुलना] (http://dba.stackexchange.com/a/7685/3690)। 'TRUNCATE' के पास 'डीआरओपी' की तुलना में थोड़ा कम लॉगिंग है क्योंकि ड्रॉपिंग सिस्टम ऑब्जेक्ट (जो भी लॉग है) से उस ऑब्जेक्ट को हटाए जाने के लिए संबंधित पंक्तियों का कारण बनती है –

उत्तर

8

तालिका को छंटनी लेनदेन लॉग में पंक्ति-दर-पंक्ति प्रविष्टियों को नहीं छोड़ती है - इसलिए न तो समाधान आपके लॉग को बहुत अधिक खराब कर देगा। अगर यह मैं था, तो मैं हर बार ड्रॉप और बनाने के लिए छेड़छाड़ करता था।

13

TRUNCATE TABLE आपकी सर्वश्रेष्ठ शर्त है। MSDN से:

व्यक्ति पंक्ति हटाए बिना लॉगिन किए तालिका वाली सभी पंक्तियां निकाल देता है।

तो इसका मतलब है कि यह आपके लेनदेन लॉग को नहीं मिटाएगा। तालिका को छोड़ना और बनाना न केवल अधिक जटिल एसक्यूएल की आवश्यकता है, बल्कि अतिरिक्त अनुमति भी है। तालिका से जुड़े किसी भी सेटिंग्स (ट्रिगर, GRANT या DENY, आदि) को भी फिर से बनाया जाना होगा।

5

मैं ट्रंकेट टेबल के लिए जाऊंगा। इंडेक्स, ट्रिगर्स इत्यादि गिरने पर संभावित रूप से ओवरहेड हो सकते हैं। इसके अलावा आप अनुमतियां खो देंगे जिन्हें उस तालिका के लिए आवश्यक किसी अन्य आवश्यक वस्तुओं के साथ फिर से बनाया जाना होगा।

इसके नीचे MDSN में DROP TABLE पर भी

एक छोटे से पकड़ लिया उल्लेख है अगर आप ड्रॉप निष्पादित और एक ही बैच में टेबल बनाएं

ड्रॉप टेबल और टेबल बनाएं एक ही बैच में एक ही मेज पर निष्पादित नहीं किया जाना चाहिए । अन्यथा एक अनपेक्षित त्रुटि हो सकती है।

2

तालिका को छोड़ना किसी भी संबंधित ऑब्जेक्ट (इंडेक्स, ट्रिगर) को नष्ट कर देगा और प्रक्रियाओं या विचारों को अमान्य बना सकता है। मैं कटाई के साथ जाऊंगा, क्योंकि यह आपके लॉग को उड़ाएगा और संभावित मुद्दों में से कोई भी बूंद और निर्माण नहीं करेगा।

+0

धन्यवाद, कोई संबंधित इंडेक्स या ट्रिगर्स नहीं हैं, मैं बस लेनदेन लॉग के बारे में चिंतित बहुत बड़ा बढ़ रहा है। –

+0

मैंने यह कठिन तरीका सीखा जब मैंने अपनी टेबल पर विस्तारित गुण जोड़ना शुरू किया, और क्योंकि मेरी टी-एसक्यूएल स्क्रिप्ट्स ड्रॉप-एंड-बिल्ड का उपयोग करती थीं, इसलिए मुझे विस्तारित गुणों को दोबारा दर्ज करना था और स्क्रिप्ट को छंटनी में बदलना पड़ा। उसके बाद कोई खोया विस्तारित गुण नहीं। –

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