यदि कोई SSIS ट्रांसफ़ॉर्म नॉन-ब्लॉकिंग, आंशिक रूप से ब्लॉकिंग, या पूरी तरह से ब्लॉक कर रहा है तो मैं कैसे निर्धारित करूँ?


12

कई ब्लॉग हैं जो एसएसआईएस ट्रांसफॉर्म को ब्लॉकिंग (एसिंक्रोनस), नॉन-ब्लॉकिंग (सिंक्रोनस) और आंशिक रूप से ब्लॉकिंग (एसिंक्रोनस) में वर्गीकृत करने का दावा करते हैं।

जब विशिष्ट प्रश्न को देखते हैं: क्या मल्टीकास्ट सिंक्रोनस (गैर-अवरुद्ध) या एसिंक्रोनस (आंशिक रूप से अवरुद्ध) है?

एक संसाधन async का दावा करता है: "मल्टीकास्ट एक एसिंक्रोनस (आंशिक रूप से अवरुद्ध) रूपांतर के रूप में भी जाना जाता है" स्रोत: http://social.technet.microsoft.com/wiki/contents/articles/7392.ssis.multicast-transformation.aspx

और एक अन्य समकालिक: https://jorgklein.com/2009/04/14/ssis-lookup-is-case-sensive/

अन्य संसाधन दावा करते हैं कि DQS क्लींजिंग ट्रांसफ़ॉर्म एक नॉन-ब्लॉकिंग ट्रांसफ़ॉर्म है, लेकिन यह मुझे आंशिक रूप से अवरुद्ध लगता है।

कृपया प्रकार द्वारा वर्गीकृत परिवर्तनों की एक सूची के लिंक के साथ जवाब न दें। इस प्रश्न का उत्तर उम्मीद है कि एक सही उत्तर प्राप्त करने के लिए एक अधिक कठोर विधि को सक्षम करेगा।

आंशिक रूप से अवरुद्ध और अवरुद्ध परिवर्तनों के रूप में डेटा को नए बफ़र्स पर ले जाएगा क्योंकि गैर-अवरोधक के विपरीत जो बफर पर काम करते हैं, मुझे संदेह है कि समाधान परिवर्तन निष्पादन के दौरान बफर निर्माण को देखना होगा, लेकिन मैं अनिश्चित हूं (एक ) यदि यह निश्चित उत्तर देगा और (ख) यह कैसे किया जाएगा।

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


3
मुलिटकास्ट समकालिक है। Synch बनाम async के लिए त्वरित सूँघने का परीक्षण है कि क्या वंशावली (पूर्व 2012) एक परिवर्तन से पहले और बाद में एक ही रहता है। मुझे 2012 में देखिए और यह कैसे काम करता है।
बिल

2
व्यवहार और समकालिकता को अवरुद्ध करना एक ही बात नहीं है। सिंक्रोनसिटी इस बारे में है कि डेटा को एक नए बफर में ले जाना है या नहीं, जबकि ब्लॉकिंग इस बारे में है कि प्रत्येक पंक्ति को तुरंत हैंडल किया जा सकता है या नहीं। उदाहरण के लिए, संघ सभी गैर-अवरुद्ध है, लेकिन अतुल्यकालिक है - यह एक नया बफर और एक नया निष्पादन धागा बनाता है, लेकिन ऐसा करने के लिए इंतजार करने की आवश्यकता नहीं है।
रॉब फार्ले

@Rob - जबकि मैं मानता हूं कि वे एक ही चीज नहीं हैं (अतुल्यकालिक आंशिक रूप से या पूरी तरह से ब्लॉक कर सकते हैं) - jorg_klein ब्लॉग वास्तव में बताता है कि यूनियन ऑल आंशिक रूप से अवरुद्ध है। मुझे इस बात से सहमत होना है कि क्या डेटा को नए बफर में स्थानांतरित किया गया है, अंतर्ज्ञान मुझे लगता है कि आंशिक रूप से ब्लॉक करेगा। अगर उसे गलत साबित किया जा सकता है और मेरी समझदारी गलत है, तो बेहतर होगा कि वह सवाल का जवाब दे!
थ्रोनक

क्या किसी के पास इस बारे में कोई विचार है कि यह कैसे परीक्षण किया जा सकता है? मुझे लगता है कि प्रदर्शन या सूचनात्मक लॉग का उपयोग यह सुनिश्चित करने के लिए किया जा सकता है लेकिन मैं निश्चित रूप से निश्चित नहीं हूं।
Nick.McD मत्स्यांगना

1
जो लोग इस टिप

जवाबों:


4

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

एक ऑपरेशन जो आंशिक रूप से अवरुद्ध होता है, नए बफ़र्स पर डेटा लिखता है, जो प्रत्येक बफर (आमतौर पर सिर्फ 10,000 पंक्तियों के तहत) आबाद होने के बाद केवल अगले ऑपरेशन द्वारा नियंत्रित होता है।

एक ऑपरेशन जो गैर-अवरुद्ध है, उसी बफर पर काम करने वाला बाद का ऑपरेशन हो सकता है, क्योंकि प्रत्येक पंक्ति को संभाला जाता है।

लेकिन कई ग्रंथ 'आंशिक रूप से अवरुद्ध' को 'गैर-अवरोधक' के रूप में संदर्भित करेंगे, क्योंकि व्यवहार 'अवरुद्ध' की तुलना में 'गैर-अवरुद्ध' के बहुत करीब है।

आपको यह बताने में सक्षम होना चाहिए कि डेटा प्रवाह को देखकर क्या हो रहा है, और यह देखते हुए कि प्रत्येक बिंदु पर संख्या बढ़ रही है या नहीं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.