การดำเนินการงาน SSIS ใช้เวลาในการตรวจสอบนานเกินไป

ฉันมีงานการรับส่งข้อมูล SSIS ซึ่งใช้เวลาเกือบ 20 นาทีในการตรวจสอบเมื่อดำเนินการ นี่คือไม่ว่าฉันจะใช้งานโดยตรงใน VS หรือดำเนินการแพคเกจจาก SSMS ก่อนที่จะทำการเปลี่ยนแปลงเล็กน้อย งานก็เสร็จสิ้นภายในไม่กี่นาที

การเปลี่ยนแปลงเดียวที่ฉันทำคือ:

  1. การเปลี่ยนอินพุต OLE DB (สองรายการในงานนี้) จากการเชื่อมต่อโดยตรงกับตารางต้นฉบับเป็นการเชื่อมต่อกับมุมมองของตาราง มุมมองเหล่านี้ง่ายมาก เพียงรวมเข้ากับตารางเล็กๆ อีกตารางหนึ่งเพื่อต่อท้ายคอลัมน์ใดคอลัมน์หนึ่ง อินพุตหนึ่งมีประมาณ 3 ล้านแถว อินพุต 2 มีสองสามแสนแถว

  2. แก้ไขการแปลงการค้นหาที่มีอยู่ (ฉันคิดว่าดีกว่า) เพื่อเปลี่ยนการเชื่อมต่อเป็น "SELECT col1, col2 FROM" แทนที่จะเชื่อมต่อโดยตรงกับตารางนี้ซึ่งมีความกว้างมาก

ก่อนการเปลี่ยนแปลงเหล่านี้ งานนี้เสร็จสิ้นภายในไม่กี่นาที ขณะนี้ ขณะที่ส่วนกระแสข้อมูลเสร็จสิ้นภายใน 1-2 นาที แต่ละขั้นตอนการตรวจสอบ (และมีอยู่สองขั้นตอน) จะใช้เวลา 17-20 นาที

มีบางอย่างเกี่ยวกับการมีมุมมองเป็นอินพุตที่ทำให้ขั้นตอนการตรวจสอบยุ่งยากหรือไม่

ภาพหน้าจอแก้ไขข้อบกพร่อง


person tad    schedule 08.03.2020    source แหล่งที่มา


คำตอบ (1)


วิธีการทั่วไป - เลิกทำ/ทำซ้ำทีละขั้นตอนและดูความแตกต่าง ดังนั้นคุณจึงสามารถค้นหาการเปลี่ยนแปลงของปัญหาได้
จากประสบการณ์ - การเปลี่ยนแปลงครั้งที่สองเป็นการเพิ่มประสิทธิภาพ ทั้งสำหรับการตรวจสอบและรันไทม์ SELECT * FROM (ซึ่งจะดำเนินการเมื่อคุณเลือกตารางจากรายการในการค้นหา) จะทำงานและตรวจสอบได้ไม่เร็วเท่ากับ SELECT Col1, Col2 FROM นอกจากนี้ การทำเช่นนี้ยังช่วยลดพื้นที่ RAM
การเปลี่ยนจากตารางเป็นการดูแบบรวมอาจเป็นสาเหตุของปัญหาได้ View อาจมีแผนปฏิบัติการที่มีการดำเนินการที่ใช้ทรัพยากรมาก เช่น Nested loop เป็นต้น ดังนั้น ฉันจะตรวจสอบแผน view exec และเล่นโดยเลิกทำสวิตช์นี้ก่อนในแพ็คเกจ SSIS

person Ferdipux    schedule 10.03.2020