हमारे पास परिपक्व ओरेकल डेटाबेस एप्लिकेशन (10 वर्षों से अधिक उत्पादन में) है, और उस समय के दौरान, हम पुराने डेटा को हटाने के लिए अपने स्वयं के निर्माण की स्क्रिप्ट का उपयोग कर रहे हैं जो अब आवश्यक नहीं है । वे I/o के साथ सिस्टम को अधिभारित करने या बहुत अधिक पूर्ववत स्थान का उपयोग करने से बचने के लिए, लगातार चलने वाले लूप में उपयुक्त तालिकाओं के खिलाफ हटाए गए बयानों को जारी करके काम करते हैं।ओरेकल डेटाबेस पर पुराने डेटा को हटाने के लिए तकनीक
वे अधिकांश भाग के लिए ठीक काम करते हैं। वे प्रतिदिन चलते हैं, और सिस्टम से डेटा के पुराने दिनों के मूल्य को हटाने में लगभग एक घंटा लगते हैं। मेरी मुख्य चिंताओं में टेबल और इंडेक्स पर प्रभाव पड़ता है कि ये सभी हटाना हो सकता है, और तथ्य यह है कि भले ही वे सिस्टम को अत्यधिक लोड नहीं करते हैं, फिर भी उस कम समय में एक दिन के डेटा को हटाने से इसका प्रभाव पड़ता है उदाहरण बफर कैश के परिणामस्वरूप, अगले कुछ घंटों के लिए बाद में पूछे जाने वाले प्रश्न थोड़ा धीमे चलते हैं क्योंकि कैश धीरे-धीरे बहाल हो जाता है।
वर्षों से हम बेहतर तरीकों पर विचार कर रहे हैं। अतीत में, मैंने सुना था कि लोगों ने पुराने डेटा काटने के लिए विभाजित टेबल का उपयोग किया - उदाहरण के लिए एक महीने प्रति माह, और मासिक आधार पर सबसे पुराना विभाजन छोड़ना। इस दृष्टिकोण के लिए मुख्य दोष यह है कि हमारे काटने के नियम "महीने एक्स निकालें" से आगे जाते हैं। उपयोगकर्ताओं को यह निर्दिष्ट करने की अनुमति है कि कुंजी मानों के आधार पर सिस्टम में कितना समय रहना चाहिए (उदाहरण के लिए, चालान तालिका में, खाता foo को 3 महीने बाद हटाया जा सकता है, लेकिन खाता बार को 2 साल तक रहने की आवश्यकता हो सकती है)।
रेफरेंसियल अखंडता का मुद्दा भी है; ओरेकल दस्तावेज डेटा गोदामों के संदर्भ में अधिकतर डेटा को शुद्ध करने के लिए विभाजन का उपयोग करने के बारे में वार्ता करता है, जहां टेबल हाइपरक्यूब होते हैं। हमारा ओएलटीपी अंत चीजों के करीब है, और महीने एक्स में डेटा के लिए माह में डेटा के संबंधों के लिए यह आम बात है। इन तालिकाओं के लिए सही विभाजन कुंजी बनाना सर्वोत्तम रूप से टिक्लिश होगा।
कैश blowouts के लिए, मैंने समर्पित बफर कैश स्थापित करने के बारे में थोड़ा सा पढ़ा है, लेकिन ऐसा लगता है कि यह प्रति-उपयोगकर्ता आधार पर अधिक है, प्रति उपयोगकर्ता या प्रति लेनदेन के आधार पर। कैश को संरक्षित करने के लिए, मुझे वास्तव में किसी भी समय कैश में एक लेनदेन के डेटा को रखने के लिए रीपिंग नौकरी पसंद है, क्योंकि डेटा को एक बार हटाए जाने की आवश्यकता नहीं है।
क्या हम निकट भविष्य के लिए हटाए गए उपयोगों से फंस गए हैं, या क्या अन्य, अधिक से अधिक चालाक तरीके से निपटने के लिए निपटने के तरीके हैं?
+1 अच्छा सवाल, काश मैं एक चतुर समाधान था, cuz मैं इसे अपने आप को ;-) – DCookie
रखने है इस्तेमाल कर सकते हैं डेटा एक विकल्प नहीं है? यानी आप अपने प्रश्नों में पुराने रिकॉर्ड फ़िल्टर कर सकते हैं (उदा। वीपीडी भविष्यवाणी का उपयोग करके) और पुराने रिकॉर्ड वापस न करें। सिर्फ यह कहकर कि यदि पंक्तियों को हटाने से प्रदर्शन की समस्या आ रही है, तो मैं कम से कम संभावना का मनोरंजन करूँगा कि उन्हें रखने की आवश्यकता एक खराब स्थिति नहीं हो सकती है। –