2009-12-20 14 views
8

मैं एक 5gig पाठ फ़ाइल वर्णमाला के क्रम सबसे अच्छा कलन विधि का उपयोग करने के क्या है में सॉर्ट करने की आवश्यकता है कि राशि के साथ एक पाठ फ़ाइल छंटाई?100000000 से अधिक रिकॉर्ड

की कमी:

गति - यथाशीघ्र

मेमोरी - 1 Gig राम चल खिड़कियों के साथ एक पीसी XP

+2

आपका प्रश्न शायद एक डुप्लिकेट है। बाहरी विलयोर्ट देखें: http://en.wikipedia.org/wiki/External_sorting –

उत्तर

11

मैं नियमित रूप से तरह पाठ फ़ाइलों>sort linux कमांड के साथ 2GB। सर्वर लोड के आधार पर आमतौर पर 15 - 30 सेकंड लगते हैं।

बस ऐसा करें, यह तब तक नहीं लगेगा जब तक आपको लगता है।

अद्यतन चूंकि आप Windows XP का उपयोग कर रहे हैं, तो आप UnxUtils में सॉर्ट कमांड प्राप्त कर सकते हैं। मैं लिनक्स संस्करण से अधिक संभवतः इसका उपयोग करता हूं, और यह उतना ही तेज़ है।

विशाल फ़ाइलें वास्तव में डिस्क की गति के लिए टोंटी .. अपने सर्वर से ऊपर एक तेजी से SATA RAID है। यदि आपकी मशीन डेस्कटॉप (या लैपटॉप) है, तो आपके 7200 आरपीएम (या 5400) आरपीएम आईडीई ड्राइव नौकरी में कुछ मिनट जोड़ देंगे।

+0

लेकिन यूटीएफ -8 के रूप में डेटा का इलाज करने से बचने के लिए बहुत सावधान रहें यदि आपको उस क्षमता की आवश्यकता नहीं है: आधुनिक लिनक्स (और सिगविन) संस्करणों में यूटीएफ -8 तुलना क्रमबद्ध करें प्रदर्शन को लगभग 100 गुना धीमा कर दें। –

+0

कमाल धन्यवाद! बस मुझे काम का एक गुच्छा बचाया! – AaronP

0

मर्ज क्रमबद्ध आपका सर्वश्रेष्ठ दांव है।

1

मैं कहूंगा कि डेटा की एक छोटे सबसेट लेने के लिए और देखने के लिए जो सबसे अच्छा काम में कुछ प्रयास करते हैं, तो उस के साथ चलते हैं। This article might help you get started

1

इस प्रकार के पैरामीटर क्या हैं? क्या आपके पास समय की बाधाएं या अंतरिक्ष की बाधाएं हैं? ऑर्डर करने का कितना करीब फाइल है? क्या आपको इसे एक पास में करना है?

5

पाठ फ़ाइलों के लिए, sort, कम से कम लिनक्स और दूसरों में GNU coreutils संस्करण, आश्चर्यजनक रूप से तेजी से काम करता है।

--buffer-size और संबंधित विकल्पों पर नज़र डालें, और --temporary-directory सेट करें यदि आपकी /tmp निर्देशिका बहुत छोटी है।

वैकल्पिक रूप से, यदि आप वास्तव में चिंतित हैं कि यह कितना समय ले सकता है, तो आप फ़ाइल को छोटे हिस्सों में विभाजित कर सकते हैं, फिर अलग-अलग क्रमबद्ध कर सकते हैं, फिर उन्हें एक साथ विलय कर सकते हैं (sort --merge के साथ)। प्रत्येक खंड को सॉर्ट करना समानांतर में विभिन्न प्रणालियों पर किया जा सकता है।

+0

इसके नाम के लायक किसी भी प्रकार से विभाजन और सॉर्टिंग और आपके लिए विलय कर रहे हैं।लक्ष्य मशीन पर केवल 1 जीबी रैम के साथ, 5 जीबी फाइल को कई इंटरमीडिएट फाइलों का उपयोग करके सॉर्ट किया जाएगा जो अंत में एक साथ विलय कर दिए जाते हैं। वास्तव में –

+2

। टिप्पणी का मुद्दा यह कई मशीनों में समानांतर में करने की संभावना थी। – ZoogieZork

0

थोक सम्मिलन आदेश का उपयोग कर SQL सर्वर में डेटा आयात करने के बारे में कैसे?

link text

यह काफी जल्दी से एसक्यूएल सर्वर में डेटा हो जाता है और फिर आप कुशल एसक्यूएल के सभी तरह के आयात किए गए डेटा के आधार पर अनुक्रमित करने देता है।

तुम भी एसक्यूएल सर्वर लघु उद्योगों का उपयोग कर एक स्वचालित कार्य के रूप में सेट कर सकते हैं।

संबंधित मुद्दे