โหมดการเข้าถึงข้อมูลของ OLE DB Destination Component มีสองรสชาติคือรวดเร็วและไม่เร็ว
เร็วไม่ว่าจะเป็น "ตารางหรือมุมมอง - โหลดเร็ว" หรือ "ตัวแปรชื่อตารางหรือมุมมอง - โหลดเร็ว" หมายความว่าข้อมูลจะถูกโหลดในรูปแบบที่กำหนด
ช้า - อย่างใดอย่างหนึ่ง "ตารางหรือมุมมอง" หรือ "ตารางหรือตัวแปรชื่อมุมมอง" จะส่งผลให้ SSIS ออกคำสั่งแทรกคำเดียวในฐานข้อมูล หากคุณกำลังโหลด 10, 100 หรืออาจ 10,000 แถวอาจมีความแตกต่างด้านประสิทธิภาพเล็กน้อยระหว่างสองวิธี อย่างไรก็ตามในบางจุดคุณจะทำให้อินสแตนซ์ของ SQL Server ของคุณเต็มไปด้วยคำขอเล็ก ๆ น้อย ๆ เหล่านี้ นอกจากนี้คุณจะละเมิด heck ออกจากบันทึกธุรกรรมของคุณ
ทำไมคุณถึงต้องการวิธีที่ไม่เร็ว ข้อมูลไม่ถูกต้อง ถ้าฉันส่งข้อมูลไป 10,000 แถวและแถวที่ 9999 มีวันที่ 2015-02-29 คุณจะมีแทรกอะตอม 10k และกระทำ / ย้อนกลับ ถ้าฉันใช้วิธีรวดเร็วชุดทั้งหมดของแถว 10k นั้นจะบันทึกทั้งหมดหรือไม่มีเลย และถ้าคุณต้องการทราบว่ามีข้อผิดพลาดแถวใดระดับของความละเอียดต่ำสุดที่คุณจะได้คือ 10k แถว
ขณะนี้มีวิธีในการรับข้อมูลที่โหลดเร็วที่สุดเท่าที่จะทำได้และยังคงจัดการกับข้อมูลที่สกปรก มันเป็นวิธีการล้มเหลวแบบเรียงซ้อนและดูเหมือนว่า
แนวคิดก็คือคุณจะพบขนาดที่เหมาะสมในการแทรกให้มากที่สุดเท่าที่จะเป็นไปได้ในนัดเดียว แต่ถ้าคุณได้รับข้อมูลที่ไม่ดี นี่ฉันเริ่มต้นด้วยการกระทำสูงสุดแทรกขนาด (FastLoadMaxInsertCommit) ของ 10000 ในการจำหน่ายข้อผิดพลาดแถวผมเปลี่ยนไปจากRedirect Row
Fail Component
ปลายทางต่อไปเหมือนกับที่อยู่ด้านบน แต่ที่นี่ฉันพยายามโหลดเร็วและบันทึกเป็นแบทช์ 100 แถว ทดสอบอีกครั้งหรือทำข้ออ้างที่จะเกิดขึ้นในขนาดที่เหมาะสม สิ่งนี้จะส่ง 100 ชุด 100 แถวที่ส่งเพราะเรารู้ว่าอยู่ตรงนั้นมีแถวอย่างน้อยหนึ่งแถวที่ละเมิดข้อ จำกัด ด้านความมั่นคงสำหรับตาราง
ฉันเพิ่มองค์ประกอบที่สามลงในมิกซ์ครั้งนี้ฉันบันทึกเป็นแบตช์ 1 หรือคุณสามารถเปลี่ยนโหมดการเข้าถึงตารางออกจากรุ่นโหลดเร็วเพราะมันจะให้ผลลัพธ์เดียวกัน เราจะบันทึกแต่ละแถวแยกกันและจะช่วยให้เราสามารถทำ "บางสิ่ง" ด้วยแถวที่ไม่ดีเดียว
ในที่สุดฉันมีปลายทางที่ไม่ปลอดภัย บางทีมันอาจจะเป็น "เดียวกัน" ตารางเป็นปลายทางที่ตั้งใจ nvarchar(4000) NULL
แต่คอลัมน์ทั้งหมดที่มีการประกาศให้เป็น ไม่ว่าจะสิ้นสุดที่ตารางนั้นจะต้องมีการวิจัยและทำความสะอาด / ทิ้งหรือสิ่งที่กระบวนการแก้ไขข้อมูลที่ไม่ดีของคุณคือ คนอื่น ๆ ถ่ายโอนไปยังไฟล์แฟลต แต่จริงๆแล้วอะไรก็ตามที่เหมาะสมกับวิธีที่คุณต้องการติดตามข้อมูลที่ไม่ดี