เครื่องมือสำหรับสถานการณ์การถ่ายโอนข้อมูลที่สร้างขึ้นเพื่อวัตถุประสงค์ทางทฤษฎีเท่านั้นซึ่งอาจเป็นประโยชน์ในการถ่ายโอนข้อมูลจำนวนมากจาก SQL Server (2000 หรือสูงกว่า) และ/หรือ Oracle (10G หรือสูงกว่า) ไปยังอีก (SQL> SQL, SQL> Oracle, Oracle> SQL และ Oracle> Oracle)
เป็นเรื่องปกติที่จะคัดลอก SQL Server และ/หรือ Oracle Tables จากอินสแตนซ์หนึ่งไปอีกอินสแตนซ์
โดยปกติแล้วเราอาจตัดสินใจใช้ตัวช่วยสร้างการนำเข้า/ส่งออก SSMS แพคเกจบริการรวมหรือวิธีการถ่ายโอนข้อมูลเป็นไฟล์ข้อความ
แต่ปัญหาอาจเกิดขึ้นได้หากเรากำลังพูดถึงตารางที่มีระเบียนมากกว่า 300 ล้านรายการหรือ 30GB ขึ้นไปหากพวกเขาจะต้องคัดลอกในเวลาขั้นต่ำ
หากเราโชคดีตารางนี้อาจมีดัชนีคลัสเตอร์ใน SQL Server หรือดัชนีที่มีฮิสโตแกรมความถี่ใน Oracle นั่นคือสถานการณ์ที่โครงการเล็ก ๆ นี้มีบทบาท
หากเราไม่มีดัชนีคลัสเตอร์บนตารางต้นทางมีความหวังบางอย่างเราใช้วิธีการใหม่ (ช้ากว่าคลัสเตอร์เล็กน้อย แต่เป็นสิ่งที่ดี) เพื่อคัดลอกข้อมูลจากตารางฮีปทั้งใน Oracle และ SQL Server
ตรรกะของมันง่ายมาก: สแกนสถิติดัชนีแบบคลัสเตอร์ใน SQL Server หรือฮิสโตแกรมใน Oracle และกำหนดกลุ่มข้อมูลที่สมดุล
หมายความว่ามันสร้างการสืบค้นเป็นเธรด parametrized และตัวกรองการสืบค้นเหล่านั้นบนฟิลด์ดัชนีคลัสเตอร์พยายามเพื่อให้ได้ปริมาณข้อมูลเดียวกันแต่ละรายการ จากนั้นมันก็ยิงพวกเขาโดยใช้ sqlbulkcopy .net FW หรือ Oraclebulkcopy จากวิธี ODP.NET ในฐานะที่เป็นฮีปมัน "พาร์ติชัน" ตารางที่มีฟังก์ชั่นที่กำหนดและโมดูล (%% Lockres %% ใน SQL Server และ Rowid ใน Oracle) และเปิดตัวแบบสอบถามแต่ละรายการในเธรดเดียว
เราต้องให้คำแนะนำว่าขึ้นอยู่กับปริมาณของเธรดมันเป็นกระบวนการที่เข้มข้นของทรัพยากรมากและในบางกรณีการบริโภค CPU อาจเพิ่มขึ้นถึง 100% และความยาวคิวดิสก์อาจทำให้รอนาน
ด้วยเหตุนี้เราขอแนะนำให้รันบนเซิร์ฟเวอร์อื่นนอกเหนือจากแหล่งข้อมูลและปลายทาง
ดังนั้นด้วยโครงสร้างของ 2 เครือข่ายที่มีการ์ดเครือข่าย 100mbit สองใบในแต่ละเซิร์ฟเวอร์เราได้รับอัตราการถ่ายโอน 190MB/SEG
คุณควรทดสอบเพื่อวัตถุประสงค์ทางสถิติก่อนที่จะคิดใช้ในสภาพแวดล้อมการผลิต
หมายเหตุเพิ่มเติม: การเพิ่มประสิทธิภาพจะได้รับภายใต้ circunstances บางอย่างและบางครั้งมันจะไม่ได้รับการพิจารณาเนื่องจากลักษณะของข้อมูลภายในคอลัมน์คลัสเตอร์ ก่อนอื่นจำเป็นต้องชี้แจงว่าดัชนีแบบคลัสเตอร์บันทึกข้อมูลสถิติเฉพาะคอลัมน์แรกของดัชนีผสมดังนั้นจึงกลายเป็นสิ่งสำคัญยิ่งกว่าที่ดัชนีคลัสเตอร์จะออกแบบมาอย่างดี เราหมายความว่ามันจะดีกว่าที่จะทำตามส่วนปลายของการสั่งซื้อฟิลด์จากหนึ่งที่มีความละเอียดมากที่สุดถึงน้อยกว่า ปัญหาอื่นที่อาจพบคือจำนวนข้อมูล NULL สถิติพูดคุยเกี่ยวกับข้อมูลที่ไม่เป็นโมฆะดังนั้นหากตารางมี 80% ของการมัลติเธรดข้อมูลว่างจะไม่ได้รับประโยชน์จากข้อมูลทั้งหมดเนื่องจากข้อมูล NULL ทั้งหมดจะถูกคัดลอกในเธรดเดียวเป็นชุดที่ไม่ซ้ำกัน โดยธรรมชาติเรายังแนะนำว่าตารางปลายทางไม่มีดัชนี (เพื่อให้เธรดแทรกจำนวนมาก) ไม่มีพาร์ติชันและไม่บีบอัดเพื่อเพิ่มความเร็วในกระบวนการแทรก
DLL นี้สามารถนำไปสู่โครงการ ETL อื่น ๆ ที่ไม่ได้ขึ้นอยู่กับหรือไม่ได้สร้างขึ้นบนแพลตฟอร์ม SSIS