क्या मुझे ट्रंकेट / बड़े इंसर्ट के बाद इंडेक्स का पुनर्निर्माण करना चाहिए?


10

मेरे पास एक संग्रहीत कार्यविधि है जो नए डेटा डालने से पहले प्रत्येक तालिका में लगभग 1.75M पंक्तियों के साथ कुछ तालिकाओं को काटती है (अन्य तालिकाओं, गणनाओं आदि में डेटा के आधार पर)

मूल रूपरेखा बहुत सरल है:

  • ट्रंकट टेबल्स
  • लगभग 75,000 प्रति समय के 'बैचों' में 1.75M पंक्तियों को सम्मिलित करें।

मुझे आश्चर्य है कि क्या मुझे इस प्रक्रिया में किसी भी समय सूचकांक को स्पष्ट रूप से फिर से बनाना चाहिए? जैसे

  • ट्रंकट टेबल्स
  • ALTER INDEX ALL ON xxx REBUILD WITH (FILLFACTOR=90) [या कुछ ऐसा ही]
  • 1.75M पंक्तियाँ डालें

या शायद

  • ALTER INDEX ALL ON xxx DISABLE
  • ट्रंकट टेबल्स
  • 1.75M पंक्तियाँ डालें
  • ALTER INDEX ALL ON xxx REBUILD WITH (FILLFACTOR=90) [या कुछ ऐसा ही]

किसी भी सहायता की सराहना की ... डीबीए नहीं - एक देव जो डीबी के सुंदर कुएं को जानता है वह अधिक सटीक है!


टेबल संरचना पर कुछ और जानकारी, जो सूचकांक आज अस्तित्व में हैं और जो डेटा डाले जा रहे हैं (क्या यह एक निश्चित क्रम में है? क्या यह क्लस्टर इंडेक्स के साथ संरेखित होता है?) मदद करेगा। इसके अलावा, जब तक यह प्रक्रिया पूरी नहीं हो जाती, तब तक मैं यह तालिका अनुपलब्ध है? बल्क आयात के विकल्प रखना अच्छा है।
माइक वाल्श

हो सकता है कि आपको इसमें सम्मिलित तालिका को छोटा करना चाहिए और यह देखना चाहिए कि आपके सूचकांक के विखंडन को देखने के लिए आपको क्या चाहिए या नहीं।
ज़ेन

v: 2008 मानक। सीएसवी, एक्सेल, ओरेकल और अन्य एसक्यूएल डीबी से इस डेटा लोड से पहले स्रोत डेटा कई स्टेजिंग टेबल है। टेबल संरचनाएं इस स्तर पर सभी समान हैं: 6 चार आईडी, 3 चार कोड, 10 कर्नल दशमलव (20,5)। प्राथमिक कुंजी आईडी + कोड है। डेटा insert intoको इस समय लोड किया जा रहा है और उसका कोई order byखंड नहीं है, लेकिन मैं इसे जोड़ सकता हूं कि क्या यह मदद करेगा? आईडी और कोड को भी अलग-अलग अनुक्रमित किया गया है।
ब्लूचिप्पी

जवाबों:


6

इस प्रकार के अधिकांश प्रश्नों के साथ, यह निर्भर करता है। यह संभव नहीं है कि आप इसमें शामिल सभी अनुक्रमितों के लिए "सही" क्रम में डेटा सम्मिलित करने जा रहे हैं, जिसका अर्थ है कि उन सभी अनुक्रमितों को सम्मिलित प्रक्रिया के दौरान बहुत सारे पृष्ठ विभाजन की संभावना है। तो चलिए मान लेते हैं कि आप क्लस्टर इंडेक्स क्रम में सम्मिलित कर रहे हैं। आप सभी गैर-संकुलित अनुक्रमणिकाओं को अक्षम कर सकते हैं, काट-छाँट कर सकते हैं, अपना इंसर्ट कर सकते हैं, और फिर अपने सभी गैर-संकुल अनुक्रमणिकाओं का पुनर्निर्माण कर सकते हैं। बेशक, दोनों दृष्टिकोणों की कोशिश आपको सच्चाई बताएगी जो इसके पीछे सिद्धांत की परवाह किए बिना तेज है। :)


1

सक्षम किए गए सभी अनुक्रमितों के साथ मूल योजना धीमी हो सकती है और इसके परिणामस्वरूप विखंडन हो सकता है।

एक छंटनी पर INDEX REBUILD को बदल दें और इसलिए खाली तालिका बिना किसी उद्देश्य के काम करती है, इसलिए आपको अपनी योजना A में संशोधन करने की आवश्यकता है। यह होना चाहिए:

  • TRUNCATE
  • सम्मिलित करें
  • ALTER INDEX REBUILD

यह धीमा हो सकता है, लेकिन कम से कम आपको तेज अनुक्रमित मिलता है।

प्लान बी ठीक है। तीनों का परीक्षण करें और देखें कि कौन सा सबसे तेज है और जो सबसे कम सूचकांक का विखंडन देता है। फिर तय करें कि क्या पुनर्निर्माण इसके लायक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.