एक पुनर्गठित-और-हटना वास्तव में अनुशंसित नहीं है।
यदि आप उन ऐप्स को ले सकते हैं जो डेटाबेस ऑफ़लाइन सेवा कर रहा है, तो आप सिकुड़ने से पहले सभी अनुक्रमित और प्राथमिक / विदेशी कुंजी बाधाओं को हटाकर इस प्रक्रिया को गति दे सकते हैं और सूचकांक विखंडन को कम कर सकते हैं (इसका मतलब होगा कि केवल स्थानांतरित होने के लिए कम डेटा होना चाहिए। डेटा पेजों को अब गैर-मौजूद इंडेक्स पेजों में फेरबदल किया जाएगा, इस प्रक्रिया को तेज किया जाएगा) फिर सभी इंडेक्स और कुंजियों को फिर से बनाया जाएगा।
हटने के बाद अनुक्रमित को फिर से बनाना मतलब है कि उन्हें महत्वपूर्ण रूप से खंडित नहीं किया जाना चाहिए, और उन्हें हटने के दौरान हटने का मतलब है कि फ़ाइलों के भीतर पृष्ठ आवंटन में कई छोटे "छेद" नहीं छोड़ेंगे, जो बाद में विखंडन को आमंत्रित कर सकते हैं।
एक अन्य विकल्प यदि आप अनुप्रयोगों को ऑफ़लाइन कर सकते हैं तो सभी डेटा को एक ही संरचना के एक नए डेटाबेस में स्थानांतरित करना है। यदि आपकी निर्माण प्रक्रिया ठोस है, तो आपको उस खाली DB को जल्दी से बनाने में सक्षम होना चाहिए, यदि वर्तमान DB से एक नहीं बनाते हैं (वर्तमान एक के बैकअप को पुनर्स्थापित करें, तालिकाओं में सभी सामग्रियों को काट / हटा दें और एक पूर्ण संकोचन करें)।
आप अभी भी गंतव्य में सभी अनुक्रमितों को छोड़ना चाहते हैं और बाद में उन्हें फिर से बना सकते हैं क्योंकि यह बहुत अधिक अनुक्रमित डेटा (इस मामले में इसका 100%) को बदलते समय बहुत अधिक कुशल हो सकता है। प्रतिलिपि प्रक्रिया को गति देने के लिए, विभिन्न भौतिक ड्राइवों पर गंतव्य डेटाबेस के डेटाफाइल (एस) को स्रोत तक ले जाएं (जब तक कि आप एसएसडी का उपयोग नहीं कर रहे हैं, उस स्थिति में आपको सिर हिलाने से बचने की जरूरत नहीं है), आप उन्हें स्थानांतरित कर सकते हैं स्रोत स्थान पर जब आप कर रहे हैं।
इसके अलावा, यदि गंतव्य को नए के रूप में बनाते हैं (स्रोत की एक प्रति को खाली करने के बजाय) इसे एक प्रारंभिक आकार के साथ बनाते हैं जिसमें सभी मौजूदा डेटा के साथ-साथ कुछ महीनों के विकास के मूल्य होंगे - जिससे डेटा कॉपी फिर से थोड़ी तेज हो जाएगी यह पूरी प्रक्रिया में हर बार और फिर से नई जगह आवंटित नहीं करेगा।
यह सिकुड़न का उपयोग करने से बेहतर हो सकता है क्योंकि डेटा को एक नए डेटाबेस में स्थानांतरित करने से हटना ऑपरेशन की इच्छित कार्रवाई की प्रतिकृति होती है, लेकिन संभावित रूप से बहुत कम विखंडन (जो एक पुनर्गठन-और-हटना का अनपेक्षित परिणाम) है। एक सिकुड़न बस फाइल के अंत के पास से ब्लॉक लेती है और उन्हें पहले स्थान के पास रख देती है जिससे शुरुआत में संबंधित डेटा को एक साथ रखने का कोई प्रयास नहीं किया जाता है।
मुझे संदेह है कि परिणाम अधिक कुशल स्थान-वार भी होंगे क्योंकि बाद में कम-उपयोग किए जाने वाले पृष्ठ होने की संभावना है। एक छोटा सा हिस्सा केवल उपयोग किए गए पृष्ठों को इधर-उधर कर देगा, डेटा को स्थानांतरित करने की संभावना पूर्ण पृष्ठों में होने की संभावना है, खासकर यदि आप तालिका के क्लस्टर किए गए कुंजी / सूचकांक (जहां एक तालिका एक है) के क्रम में गंतव्य में सम्मिलित करते हैं और अन्य सूचकांक बनाते हैं। डेटा के बाद सभी माइग्रेट हो गए हैं।
बेशक, अगर आप एप्स को ऑफलाइन नहीं ले सकते हैं, तो सिर्फ सिकुड़न करना ही आपका एकमात्र विकल्प है, इसलिए अगर आपको वास्तव में उस जगह पर जाने की जरूरत है, तो आप उसे फिर से प्राप्त कर सकते हैं। आपके डेटा, एक्सेस पैटर्न, सामान्य कामकाजी सेट आकार, सर्वर में कितनी रैम है, और इसके आधार पर, अतिरिक्त आंतरिक विखंडन अंत में यह सब महत्वपूर्ण नहीं हो सकता है।
कॉपी ऑपरेशन के लिए, या तो एसएसआईएस या बेस टी-एसक्यूएल ही काम करेगा (एसएसआईएस विकल्प कम कुशल हो सकता है, लेकिन बाद में बनाए रखने के लिए संभवतः आसान है)। यदि आप अनुक्रमणिका के साथ अंत में एफके संबंध बनाते हैं तो आप प्रत्येक तालिका के लिए एक सरल "कॉपी, कॉपी" कर सकते हैं। बेशक एक बंद के लिए, एक हटना + पुनर्गठन शायद ठीक भी है, लेकिन मैं सिर्फ लोगों को नियमित चिंतन पर विचार करने से डराना पसंद करता हूं! (मुझे पता है कि लोग उन्हें रोजाना शेड्यूल करते हैं)।