Ubuntu 12.04 पर PG 9.1 का उपयोग करना।
वर्तमान में किसी डेटाबेस पर बड़े स्टेटमेंट को सेट करने में हमें 24 घंटों तक का समय लगता है, जो इस प्रकार हैं:
UPDATE table
SET field1 = constant1, field2 = constant2, ...
WHERE id = constid
(हम आईडी द्वारा पहचानी गई वस्तुओं के क्षेत्रों को अधिलेखित कर रहे हैं।) मान एक बाहरी डेटा स्रोत से आते हैं (तालिका में पहले से ही डीबी में नहीं)।
तालिकाओं में मुट्ठी भर सूचकांक हैं और कोई भी विदेशी कुंजी बाधा नहीं है। अंत तक कोई COMMIT नहीं किया जाता है।
pg_dump
पूरे DB के आयात में 2h लगता है । यह एक आधार रेखा की तरह प्रतीत होता है जिसे हमें उचित रूप से लक्षित करना चाहिए।
किसी कस्टम प्रोग्राम के निर्माण की कमी, जो किसी तरह पोस्टग्रेएसक्यूएल के डेटा सेट को फिर से आयात करने के लिए फिर से तैयार करता है, क्या हम कुछ भी कर सकते हैं जो थोक यूपीडेट प्रदर्शन को आयात के करीब ला सकता है? (यह एक ऐसा क्षेत्र है जो हम मानते हैं कि लॉग-स्ट्रक्चर्ड मर्ज ट्री अच्छी तरह से संभालते हैं, लेकिन हम सोच रहे हैं कि क्या ऐसा कुछ है जो हम GggSQL के भीतर कर सकते हैं।)
कुछ विचार:
- सभी गैर-आईडी सूचकांकों को छोड़ना और बाद में पुनर्निर्माण करना?
- बढ़ती चेकपॉइंट_सेक्शन, लेकिन क्या यह वास्तव में निरंतर दीर्घकालिक थ्रूपुट में मदद करता है?
- यहाँ उल्लिखित तकनीकों का उपयोग करना ? (नए डेटा को तालिका के रूप में लोड करें, फिर "पुराने डेटा में विलय करें" जहां आईडी नए डेटा में नहीं मिली है)
मूल रूप से कोशिश करने के लिए चीजों का एक समूह है और हमें यकीन नहीं है कि सबसे प्रभावी क्या हैं या अगर हम अन्य चीजों की अनदेखी कर रहे हैं। हम अगले कुछ दिन प्रयोग करने में बिताएंगे, लेकिन हमने सोचा कि हम यहाँ भी पूछेंगे।
मेरे पास टेबल पर समवर्ती भार है लेकिन यह केवल पढ़ने के लिए है।
explain analyze
कि यह लुकअप के लिए एक सूचकांक का उपयोग कर रहा है?