हमें एक SQL सर्वर इंस्टेंस मिला है जिसका उपयोग ईमेल संग्रह (एक तृतीय पक्ष संग्रह पैकेज के सौजन्य से) के लिए किया जाता है। हर बार, सॉफ़्टवेयर को एक नए खाली डेटाबेस पर ले जाया जाता है। हमने इसे पूर्व में त्रैमासिक किया है, लेकिन हम इसे मासिक रूप से करना चाहते हैं। संग्रहीत किए जाने वाले डेटा की मात्रा लगभग 15 - 20 जीबी प्रति माह है, और डेटा का थोक केवल मुट्ठी भर तालिकाओं (आमतौर पर 2 - 4) में रहता है।
एक बार जब हम एक नए डेटाबेस में रोल करते हैं, तो पुराना एक सख्ती से पढ़े-लिखे आधार पर इस्तेमाल हो जाता है। मैं जो करना चाहता हूं, उसे सभी टेबल / इंडेक्स के साथ एक अच्छा, तंग डेटा फ़ाइल में ऑप्टिमाइज़ करना और बहुत अधिक भरने वाला कारक है, और डेटा फ़ाइल के अंत में बहुत खाली जगह नहीं है। इसके अलावा, हम इस सर्वर पर मानक संस्करण का उपयोग कर रहे हैं, जिसका अर्थ है कि सभी सीमाएँ (अन्यथा मैं पहले से ही डेटा संपीड़न का उपयोग कर रहा हूँ)।
कुछ संभावनाएं जो मैं सोच सकता हूं:
- REBUILD / REORGANIZE इंडेक्स, DBCC SHRINKFILE (ठीक है, यह एक समझदार विकल्प नहीं है, क्योंकि DBCC SHRINKFILE कुछ भी छूने से पेशाब को अलग कर देगा, लेकिन मैं इसे पूर्णता के लिए शामिल कर रहा हूं।)
- ऑटो-स्टैटिस के साथ एक नया डेटाबेस बनाएँ। स्रोत डेटाबेस से सभी तालिकाओं को स्क्रिप्ट और फिर से बनाएँ। क्लस्टर-कुंजी क्रम में नए डेटाबेस में डेटा को निर्यात / आयात करने के लिए bcp का उपयोग करें। स्क्रिप्ट और सभी अनुक्रमों को फिर से बनाना। पूर्ण स्कैन के साथ सभी आँकड़ों को फिर से लिखें।
- ऑटो-स्टैटिस के साथ एक नया डेटाबेस बनाएँ। स्रोत डेटाबेस से सभी तालिकाओं को स्क्रिप्ट और फिर से बनाएँ। नए डेटाबेस में डेटा ट्रांसफर करने के लिए SSIS या T-SQL का उपयोग करें। स्क्रिप्ट और सभी अनुक्रमों को फिर से बनाना। पूर्ण स्कैन के साथ सभी आँकड़ों को फिर से लिखें।
हर मामले में अंतिम चरण डेटाबेस को केवल-पढ़ने के लिए मोड पर सेट करना होगा।
ऐसा करने के लिए अन्य अच्छे / बेहतर विकल्प क्या हैं? मेरी चिंता एक उच्च भरण कारक को संरक्षित करने के लिए इस तरह से डेटा पर बढ़ रही है, और एक तार्किक रूप से सन्निहित फैशन में है।
संपादित करें:
मुझे यह उल्लेख करना चाहिए कि लगभग 75% डेटा छवि (LOB) कॉलम में संग्रहीत किया जा रहा है।
PRIMARY?