इस उत्तर में, मैं SSIS के आधिकारिक दस्तावेज़ीकरण से जानकारी प्रदान करने का प्रयास करूँगा और मैं SQL सर्वर गंतव्य के साथ अपने व्यक्तिगत अनुभव का उल्लेख करूँगा।
<एच2>1. SQL सर्वर गंतव्यआधिकारिक SQL सर्वर गंतव्य दस्तावेज़ीकरण के अनुसार:
<ब्लॉकक्वॉट>SQL सर्वर गंतव्य स्थानीय SQL सर्वर डेटाबेस से जुड़ता है और SQL सर्वर तालिकाओं और दृश्यों में डेटा को बल्क लोड करता है। आप SQL सर्वर गंतव्य का उपयोग उन पैकेजों में नहीं कर सकते हैं जो दूरस्थ सर्वर पर SQL सर्वर डेटाबेस तक पहुँचते हैं। इसके बजाय, संकुल को OLE DB गंतव्य का उपयोग करना चाहिए।
SQL सर्वर गंतव्य SQL सर्वर में डेटा का वही उच्च-गति सम्मिलन प्रदान करता है जो बल्क इंसर्ट कार्य प्रदान करता है; हालाँकि, SQL सर्वर गंतव्य का उपयोग करके, SQL सर्वर में डेटा लोड होने से पहले एक पैकेज स्तंभ डेटा में परिवर्तन लागू कर सकता है।
SQL सर्वर में डेटा लोड करने के लिए, आपको OLE DB गंतव्य के बजाय SQL सर्वर गंतव्य का उपयोग करने पर विचार करना चाहिए
2. OLEDB गंतव्य
आधिकारिक OLEDB डेस्टिनेशन डॉक्यूमेंटेशन के अनुसार:
<ब्लॉककोट>OLEDB गंतव्य - तेज़ लोड विकल्प:डेटा को तालिका में लोड करें या OLE DB गंतव्य में देखें और तेज़ लोड विकल्प का उपयोग करें, जो बल्क इंसर्ट के लिए अनुकूलित हैं
3. OLEDB गंतव्य बनाम SQL सर्वर गंतव्य
SQL सर्वर गंतव्य बनाम OLE DB गंतव्य के अनुसार - MSDN विषय:
एकता सेवाओं के पूर्व समूह कार्यक्रम प्रबंधक, डोनाल्ड किसान ने कहा कि आप SQL Server Destination
का उपयोग करके प्रदर्शन में 5 से 10% की वृद्धि प्राप्त कर सकते हैं .
इसके अलावा, मैट मैसन के निम्नलिखित पद का हवाला देते हुए, जो माइक्रोसॉफ्ट में डेटा एकीकरण विशेषज्ञ हैं, जहां उन्होंने निम्नलिखित प्रश्न का उत्तर दिया:
<ब्लॉककोट>क्या मुझे SQL सर्वर गंतव्य का उपयोग करना चाहिए?
उत्तर था
<ब्लॉकक्वॉट>नहीं
...
मेरी सिफारिश यह है कि यदि आपको प्रत्येक बिट के प्रदर्शन की आवश्यकता है (10 घंटे के लोड पर 10% पूर्ण वृद्धि महत्वपूर्ण हो सकती है), तो SQL सर्वर गंतव्य को देखें कि यह आपके लिए कैसे काम करता है। हालाँकि - SQL सर्वर गंतव्य की निम्नलिखित सीमाओं को ध्यान में रखें:
- आपके पास SSIS उसी मशीन पर चलना चाहिए जिस पर गंतव्य डेटाबेस है
- आपको पैकेज को व्यवस्थापक के रूप में चलाना होगा
- जब चीजें गलत हो जाती हैं तो डीबग करना बहुत मुश्किल होता है
इन सीमाओं को देखते हुए, मैं OLE DB गंतव्य का उपयोग करने की अनुशंसा करता हूं भले ही आप SQL सर्वर गंतव्य के साथ प्रदर्शन में वृद्धि देख रहे हों।
3.1. डेटा लोडिंग प्रदर्शन मार्गदर्शिका
(अपडेट @ 2019-03-25)
एसएसआईएस सर्वोत्तम प्रथाओं पर खोज करते समय मुझे एक बहुत ही उपयोगी माइक्रोसॉफ्ट आर्टसील मिला जिसे संदर्भ के रूप में इस्तेमाल किया जा सकता है:
- डेटा लोडिंग प्रदर्शन मार्गदर्शिका
इस लेख में उन्होंने SQL सर्वर गंतव्य और OLEDB गंतव्य सहित सभी डेटा लोड विधियों के बीच तुलना की, उन्होंने उल्लेख किया कि:
<ब्लॉकक्वॉट>SQL सर्वर गंतव्य SQL सर्वर गंतव्य एक एकीकरण सेवा डेटा प्रवाह से SQL सर्वर पर डेटा को बल्क लोड करने का सबसे तेज़ तरीका है। यह गंतव्य SQL सर्वर के सभी थोक लोड विकल्पों का समर्थन करता है - ROWS_PER_BATCH को छोड़कर।
ध्यान रखें कि इस गंतव्य के लिए SQL सर्वर से साझा स्मृति कनेक्शन की आवश्यकता है। इसका मतलब यह है कि इसका उपयोग केवल तभी किया जा सकता है जब एकीकरण सेवाएं उसी भौतिक कंप्यूटर पर SQL सर्वर के रूप में चल रही हों।
OLE DB गंतव्य: OLE DB गंतव्य SQL सर्वर के लिए सभी बल्क लोड विकल्पों का समर्थन करता है। हालांकि, ऑर्डर किए गए बल्क लोड का समर्थन करने के लिए, कुछ अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है। अधिक जानकारी के लिए, "सॉर्ट किए गए इनपुट डेटा" देखें। बल्क एपीआई का उपयोग करने के लिए, आपको इस गंतव्य को "फास्ट लोड" के लिए कॉन्फ़िगर करना होगा।
OLE DB गंतव्य SQL सर्वर से TCP/IP और नामित पाइप कनेक्शन दोनों का उपयोग कर सकता है। इसका अर्थ यह है कि OLE DB गंतव्य, SQL सर्वर गंतव्य के विपरीत, बल्क लोड लक्ष्य के अलावा किसी अन्य कंप्यूटर पर चलाया जा सकता है। क्योंकि एकीकरण सेवा पैकेज जो OLE DB गंतव्य का उपयोग करते हैं, उन्हें स्वयं SQL सर्वर कंप्यूटर पर चलने की आवश्यकता नहीं है, आप वर्कहॉर्स सर्वर के साथ ETL प्रवाह को बढ़ा सकते हैं।
3.2. व्यक्तिगत अनुभव
(अपडेट @ 2019-03-25)
चूंकि इस प्रश्न का उपयोग कई लोगों द्वारा संदर्भ के रूप में किया जाता है, और इस डोमेन में अधिक अनुभवी होने के बाद, मैंने SQL सर्वर गंतव्य का उपयोग करके अपने व्यक्तिगत अनुभव का उल्लेख करने के लिए इस अनुभाग को जोड़ा।
जबकि आधिकारिक दस्तावेज में उल्लेख किया गया है कि SQL सर्वर गंतव्य प्रदर्शन में वृद्धि करेगा, मैं कई कारणों से इस घटक का उपयोग करने की बिल्कुल भी अनुशंसा नहीं करता:
- यह आवश्यक है कि गंतव्य सर्वर और ईटीएल सर्वर समान हों (केवल स्थानीय SQL सर्वर के साथ काम करता है)
- यह हमेशा अपवाद फेंकता है जिसका कोई अर्थ नहीं होता
- डेटा की विशाल मात्रा पर परीक्षण के बाद OLEDB गंतव्य के साथ प्रदर्शन अंतर नगण्य है (लगभग 500 जीबी डेटा पर परीक्षण किया गया है और समय का अंतर एक मिनट से कम है)
आप निम्न पोस्ट को भी देख सकते हैं (@billinkc से) इस विषय के बारे में अधिक जानकारी प्राप्त करने के लिए:
- क्या SSIS पैकेज और SQL डेटाबेस एक ही सर्वर पर होने चाहिए?
4. निष्कर्ष
Microsoft लेखों के आधार पर, आप कह सकते हैं कि SQL Server Destination
डेटा डालने का प्रदर्शन बढ़ाएँ (यह बल्क इंसर्ट का उपयोग करता है) , लेकिन यह एक विशिष्ट मामले के लिए डिज़ाइन किया गया है जो स्थानीय SQL सर्वर है। OLEDB Destination
अन्य मामलों में और Fast Load
. का उपयोग करके अधिक सामान्य और अनुशंसित है डेटा एक्सेस मोड (जो बल्क इंसर्ट का भी उपयोग करता है) OLE DB destination
. पर यह डेटा लोड के प्रदर्शन को बढ़ाएगा।
दूसरी ओर, मेरे अनुभव और SSIS विशेषज्ञों द्वारा लिखे गए कई लेखों के आधार पर, SQL सर्वर गंतव्य का उपयोग करने की बिल्कुल भी अनुशंसा नहीं की जाती है चूंकि यह स्थिर नहीं है और यह अक्सर अपवाद फेंकता है और प्रदर्शन को नगण्य माना जा सकता है।
अतिरिक्त जानकारी
हाल ही में, मैंने इस विषय पर एक विस्तृत लेख प्रकाशित किया। आप इसे यहां देख सकते हैं:
- एसएसआईएस ओएलई डीबी गंतव्य बनाम एसक्यूएल सर्वर गंतव्य