2010-05-25 16 views
7

में 60 मीटर रिकॉर्ड आयात करने का सबसे तेज़ तरीका क्या है मेरे पास मेरे डेटाबेस में 5-6 टेबल हैं जो मुझे अपने ऐप में peroformance का परीक्षण करने के लिए परीक्षण डेटा के साथ पॉप्युलेट करने की आवश्यकता है।एसक्यूएल

मैं एक कोड लिख सकता हूं और एक थोक डालने में मेरी भविष्यवाणी यह ​​है कि इसे चलाने में लगभग 3 दिन लगेंगे, इसलिए मुझे लगता है कि वहां एक तेज रास्ता होना चाहिए।

कोई विचार?

+0

स्वीट जीसस, एसक्यूएल इंसर्ट्स के 3 दिन ... क्या आप कल्पना कर सकते हैं कि आपको फ़ाइल अपलोड (उदाहरण के लिए PhpMyAdmin, SQL-Web-Admin) के माध्यम से इसे वेब इंटरफ़ेस के माध्यम से फ़ीड करना था ... शुभकामनाएँ। – Dal

+2

किसी डेटाबेस की नौकरी करने के लिए कभी भी एप्लिकेशन भाषा का उपयोग न करें और डेटाबेस में कोई एप्लिकेशन भाषा का काम न करें, और यह डेटाबेस का काम है। –

उत्तर

1

एसएसआईएस जाने का एक तरीका है, लेकिन आप या तो थोक सम्मिलन कार्य का उपयोग कर रहे हैं, या फ़ाइल के माध्यम से लूपिंग कर सकते हैं और एक INSERT INTO कथन को कॉल कर सकते हैं। बीसीपी उपलब्ध है।

+0

मैं उस पर विचार कर रहा था। क्या बीसीपी बहुत तेज़ है? – Jon

+0

बीसीपी बल्क इंसर्ट से तेज नहीं है। यह लिंक देखें: http://msdn.microsoft.com/en-us/library/aa178096(SQL.80).aspx –

+0

धन्यवाद, अजीब मैंने हमेशा सोचा कि बीसीपी तेज – Jon

3

इस पर निर्भर करते हुए कि आप अपना डेटा कैसे बना रहे हैं, एसएसआईएस डेटा डालने का सबसे अच्छा तरीका हो सकता है।

इसके अलावा, सुनिश्चित करें कि आप जहां भी संभव हो वहां सभी ट्रिगर बंद कर दें और जितनी संभव हो सके उतने इंडेक्स को हटा दें, बाद में उन्हें फिर से जोड़ दें।

0

उपयोग recursive CTEs पैदा करते हैं और एक समय में पंक्तियों की भारी मात्रा में डालने के लिए:

with table1Test 
as (
-- 
-- generate some test rows 
-- 
) 
insert into table1 select ... from table1Test 
1

बीसीपी, बहुत बहुत तेजी से, और कहा कि उपयोग करने के लिए मुश्किल नहीं है यह भी आप एक बैच फ़ाइल से आसानी से और जल्दी से चला सकते हैं बाद में।

एसएसआईएस, सुपर है, आप ब्रांचिंग और निर्णय पेड़ों के साथ अच्छी स्क्रिप्ट बना सकते हैं।

एक बार स्थिति के लिए, गति दोनों में समान होगी।

आप इस बात से चौंक जाएंगे कि यह 60 मिलियन को कैसे संभाला जा सकता है। एक साफ बीसीपी बैच फ़ाइल को वाईफेट करें, आप आयात कर सकते हैं, - हमें एसक्यूएल को संशोधित करने, नए डेटा को निर्यात करने और परीक्षण डेटा के विभिन्न सेट बनाने के लिए। सभी सेकंड या मिनट में काम करेंगे।

याद रखें, अगर आपको बीसीपी के लिए प्रारूप फ़ाइल निर्दिष्ट करने की आवश्यकता है, तो ऐसा करने का एक तरीका तालिका में दो रिकॉर्ड्स में कुंजी है, फिर उस तालिका से बीसीपी निर्यात करें, जिससे बीसीपी एक एफएमटी फ़ाइल उत्पन्न कर सके। अब आपके पास फाइल है, आप इसका उपयोग कर आयात कर सकते हैं।

गुड लक,

मार्क Breen आयरलैंड बीएमडब्ल्यू R80GS 1987

0

आप Redgate उपकरण पर एक नज़र हो सकता था, वे एक कहा जाता है डेटा जनरेटर है। यह आपको अपनी स्क्रिप्ट लिखने में मदद कर सकता है और मुझे यकीन है कि उन्होंने किसी भी तरह से आवेषण की गति के लिए अनुकूलित किया है।

(अस्वीकरण, मैं सॉफ्टवेयर की तरह रेडगेट से जुड़ा नहीं हूं)।

1

आप इंडेक्स को पहले से अक्षम करके डेटा को सम्मिलित करते समय महत्वपूर्ण समय बचा सकते हैं, और उन्हें पूरा होने पर पुनः सक्षम कर सकते हैं। जबकि प्रत्येक पंक्ति को जोड़ा जा रहा है, इसे लगातार सूचकांक, कभी-कभी पृष्ठों को विभाजित करने की आवश्यकता होती है, आदि दोहराए जाने वाले हेरफेर का एक गुच्छा छोड़ने के लिए बेहतर है, और जब इसे सम्मिलित किया जाता है तो इसे एक बार काम करने दें।

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

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

  • कोई संबंधित समस्या नहीं^_^