ฉันจะตรวจสอบได้อย่างไรว่าการแปลง SSIS ไม่ใช่การปิดกั้นการบล็อกบางส่วนหรือการบล็อกทั้งหมด


12

มีหลายบล็อกที่อ้างว่าจัดประเภท SSIS เป็นการแปลง (แบบอะซิงโครนัส), การไม่บล็อก (ซิงโครนัส) และการบล็อกบางส่วน (อะซิงโครนัส)

เมื่อตรวจสอบคำถามที่เฉพาะเจาะจง: มัลติคาสต์ซิงโครนัส (ไม่ปิดกั้น) หรืออะซิงโครนัส (ปิดกั้นบางส่วน) หรือไม่

แหล่งข้อมูลหนึ่งอ้างว่า async: "Multicast เป็นการแปลงแบบอะซิงโครนัส (หรือเรียกอีกอย่างว่าการบล็อกบางส่วน)" : http://social.technet.microsoft.com/wiki/contents/articles/7392.ssis-multicast-transformation.aspx

และอีกแบบย่อ: https://jorgklein.com/2009/04/14/ssis-lookup-is-case-sensitive/

แหล่งข้อมูลอื่นอ้างว่าการแปลง DQS Cleansing เป็นการแปลงที่ไม่มีการปิดกั้น แต่ดูเหมือนว่าฉันกำลังปิดกั้นบางส่วน

กรุณาอย่าตอบด้วยลิงค์ไปยังรายการของการแปลงประเภทตามประเภท คำตอบสำหรับคำถามนี้หวังว่าจะช่วยให้วิธีการที่เข้มงวดยิ่งขึ้นเพื่อพิสูจน์คำตอบที่ถูกต้อง

เนื่องจากการแปลงบล็อกและบล็อกบางส่วนจะย้ายข้อมูลไปยังบัฟเฟอร์ใหม่ซึ่งไม่ใช่การบล็อกซึ่งทำงานกับบัฟเฟอร์ในสถานที่ฉันสงสัยว่าโซลูชันจะเฝ้าดูการสร้างบัฟเฟอร์ระหว่างการดำเนินการแปลง แต่ฉันไม่แน่ใจ ( ) ถ้าสิ่งนี้จะสร้างคำตอบที่ชัดเจนและ (b) วิธีการทำเช่นนี้

ฉันเชื่อว่าการแปลงที่ไม่ปิดกั้นจะไม่ทำให้แผนผังการดำเนินการใหม่เริ่มต้นดังนั้นจึงเป็นไปได้ว่าคำตอบนั้นอยู่ในการบันทึก PipelineExectionTrees และ PipelineExecutionPlan สิ่งนี้อาจแยกความแตกต่างระหว่างแบบซิงโครนัสและแบบอะซิงโครนัส แต่อาจไม่แยกความแตกต่างระหว่างการบล็อกบางส่วนและการบล็อกอย่างสมบูรณ์


3
Mulitcast เป็นแบบซิงโครนัส การทดสอบ sniff อย่างรวดเร็วสำหรับการซิงค์ vs async คือ lineageid (ก่อนปี 2012) ยังคงเหมือนเดิมก่อนและหลังการแปลง ให้ฉันดูในปี 2012 และวิธีการทำงานในขณะนี้
billinkc

2
พฤติกรรมการปิดกั้นและความบังเอิญนั้นไม่เหมือนกัน ความบังเอิญเป็นเรื่องเกี่ยวกับข้อมูลที่จะต้องย้ายเข้าไปในบัฟเฟอร์ใหม่หรือไม่ในขณะที่การปิดกั้นเป็นเรื่องเกี่ยวกับว่าแต่ละแถวสามารถจัดการได้ทันทีหรือไม่ ตัวอย่างเช่น Union All เป็นการบล็อกไม่ใช่แบบอะซิงโครนัสซึ่งจะสร้างบัฟเฟอร์ใหม่และเธรดการเรียกใช้ใหม่ แต่ไม่จำเป็นต้องรอเพื่อทำเช่นนั้น
Rob Farley

@ Rob - ในขณะที่ฉันยอมรับว่าพวกเขาไม่เหมือนกัน (แบบอะซิงโครนัสสามารถบล็อกบางส่วนหรือทั้งหมด) - บล็อก jorg_klein จริง ๆ แล้วระบุว่า Union All กำลังบล็อกบางส่วน ฉันมีความเห็นพ้องที่จะยอมรับว่าข้อมูลถูกย้ายเข้าไปในบัฟเฟอร์ใหม่ปรีชาทำให้ฉันคิดว่าจะปิดกั้นบางส่วน หากเขาสามารถพิสูจน์ได้ว่าผิดและสัญชาตญาณของฉันไม่ถูกต้องสิ่งที่ดีกว่าก็คือตอบคำถาม!
Thronk

ไม่มีใครมีแนวคิดใด ๆ เกี่ยวกับวิธีการทดสอบนี้หรือไม่? ฉันเดาประสิทธิภาพหรือบันทึกข้อมูลอาจถูกใช้เพื่อค้นหาสิ่งนี้อย่างแน่นอน แต่ฉันไม่แน่ใจ
Nick.McDermaid

1
สำหรับผู้ที่อาจต้องการทดสอบเคล็ดลับ

คำตอบ:


4

การดำเนินการที่ปิดกั้นต้องรอจนกว่าจะเห็นแถวทั้งหมดและจัดการก่อนที่จะสามารถเริ่มต้นการเติมบัฟเฟอร์

การดำเนินการที่ปิดกั้นบางส่วนจะเขียนข้อมูลลงในบัฟเฟอร์ใหม่ซึ่งจะได้รับการจัดการโดยการดำเนินการครั้งถัดไปเมื่อแต่ละบัฟเฟอร์ (โดยทั่วไปมีขนาดต่ำกว่า 10,000 แถว) เท่านั้น

การดำเนินการที่ไม่ใช่การปิดกั้นสามารถมีการดำเนินการที่ตามมาทำงานในบัฟเฟอร์เดียวกันเนื่องจากแต่ละแถวได้รับการจัดการ

แต่ข้อความจำนวนมากจะอ้างถึง 'การปิดกั้นบางส่วน' เป็น 'ไม่ปิดกั้น' เนื่องจากพฤติกรรมนั้นใกล้เคียงกับ 'ไม่ปิดกั้น' มากกว่า 'ปิดกั้น'

คุณควรจะสามารถบอกได้ว่าเกิดอะไรขึ้นโดยการดูการไหลของข้อมูลและดูว่าเมื่อใดตัวเลขจะเพิ่มขึ้นในแต่ละจุด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.