पहले मुझे बताएं कि मैं SQL सर्वर 2005 पर चल रहा हूं इसलिए मेरे पास MERGE
तक पहुंच नहीं है।सभी/थोक सम्मिलित करें
मेरे पास ~ 150k पंक्तियों वाली एक तालिका है जिसे मैं प्रतिदिन टेक्स्ट फ़ाइल से अपडेट कर रहा हूं। जैसे-जैसे टेक्स्ट फ़ाइल से पंक्तियां निकलती हैं, मुझे उन्हें डेटाबेस से हटाना होगा और यदि वे बदलते हैं या नए हैं तो मुझे तदनुसार अपडेट/डालने की आवश्यकता है।
कुछ परीक्षणों के बाद मुझे लगता है कि प्रदर्शन के अनुसार यह पूर्ण हटाने के लिए तेजी से तेज़ है और फिर फ़ाइल फ़ाइल से अद्यतन/डालने के लिए फ़ाइल लाइन के माध्यम से पढ़ने के बजाय टेक्स्ट फ़ाइल से थोक सम्मिलित है। हालांकि मैं हाल ही में एक टेम्पलेट तालिका का उपयोग कर MERGE
कार्यक्षमता SQL Server 2008 की कार्यक्षमता और UPDATE
कथन के आउटपुट की नकल करने पर चर्चा करने वाली कुछ पोस्टों में आया हूं।
मुझे इसमें रूचि थी क्योंकि मुझे लगता है कि तालिका में कोई पंक्ति नहीं होने पर मैं अपने हटाएं/थोक सम्मिलन विधि में समय को कैसे समाप्त कर सकता हूं। मुझे अभी भी लगता है कि यह विधि सबसे तेज़ होगी इसलिए मैं खाली तालिका समस्या को हल करने का सबसे अच्छा तरीका ढूंढ रहा हूं।
धन्यवाद
युक्तियों के लिए धन्यवाद, मुझे ट्रंकेट के बारे में पता नहीं था और संभवतः इसका उपयोग करेंगे, लेकिन तालिका खाली होने पर हटाने और थोक सम्मिलन के बीच छोटी अवधि की अवधि को खत्म करने की कोशिश कर रहा हूं। कोई विचार? – rpf3
@ आरपीएफ 3: ट्रंकेट को आज़माएं। मुझे लगता है कि आप जिस देरी के बारे में बात कर रहे हैं उसमें से अधिकांश को खत्म कर दिया जाएगा। –
ट्रंकेट डिलीट से निश्चित रूप से तेज़ था लेकिन बल्क सम्मिलन के लिए अभी भी ~ 9 सेकंड लगते हैं। मुझे यह देखने के लिए कहा गया है कि डाउनटाइम की इस छोटी राशि को खत्म करने का कोई तरीका है क्योंकि अन्य प्रक्रिया रनटाइम के दौरान डेटाबेस को हिट कर सकती है। – rpf3