2008-11-24 16 views
6

मेरे पास SQL ​​सर्वर में डेटा की एक बड़ी (कई गीगाबाइट्स) तालिका है जो मैं उसी सर्वर पर किसी अन्य डेटाबेस में किसी तालिका में स्थानांतरित करना चाहता हूं।एसक्यूएल सर्वर टेबल के बीच डेटा के बड़े सेट कुशलता से चल रहे हैं?

तालिकाएं एक ही लेआउट हैं।

ऐसा करने के बारे में जाने का सबसे प्रभावशाली तरीका क्या होगा?

यह एक ऑफ ऑफ ऑपरेशन है इसलिए कोई स्वचालन की आवश्यकता नहीं है।

बहुत धन्यवाद।

उत्तर

6

यदि यह एक ऑफ-ऑफ ऑपरेशन है, तो शीर्ष दक्षता का ख्याल क्यों है?

SELECT * INTO OtherDatabase..NewTable FROM ThisDatabase..OldTable 

या

INSERT OtherDatabase..NewTable 
SELECT * FROM ThisDatabase..OldTable 

... और यह रात में चलने दें। मैं यह कहने की हिम्मत करता हूं कि उसी सर्वर पर SELECT/INSERT का उपयोग करना सबसे अच्छी दक्षता से बहुत दूर नहीं है जिसे आप वैसे भी प्राप्त कर सकते हैं।

+1

आप एक वैध बिंदु बनाते हैं। मुझे लगता है कि मैं चीजों को 'सही तरीके से करने' के लिए भी बहुत प्रोग्राम किया गया हूं। जैसा कि मैं टाइप करता हूं क्वेरी चल रही है! – Martin

+1

डालने के बजाए बल्क इन्टरर्ट पर विचार करें। Http://msdn.microsoft.com/en-us/library/ms188365.aspx –

+0

पूर्ण और केवल 26 मिनट ले लिया। धन्यवाद। – Martin

2

या आप Microsoft SQL सर्वर प्रबंधन स्टूडियो में "प्रबंधन" के अंतर्गत पाए गए "SQL आयात और निर्यात विज़ार्ड" का उपयोग कर सकते हैं।

2

मैं टॉमलाक के उत्तर के साथ जाऊंगा।

आप अस्थायी रूप से निष्पादित करने से पहले थोक लॉग इन पुनर्प्राप्ति मोड में अपने लक्ष्य डेटाबेस डाल करने के लिए चाहते हो सकता है एक विस्फोट लॉग फ़ाइल को रोकने के लिए 'में' चुनें ...

1

यदि यह SQL सर्वर 7 या डाटा परिवर्तन में 2000 वर्णन दिया गया है सेवाएं (डीटीएस)। एसक्यूएल 2005 और 2008 के लिए एसक्यूएल सर्वर एकीकरण सेवाओं (एसएसआईएस)

1

निश्चित रूप से लक्ष्य डीबी को थोक-लॉग मोड में डालें। यह ऑपरेशन को न्यूनतम रूप से लॉग करेगा और इसे तेज करेगा।

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