ปรับปรุงประสิทธิภาพ BCP สำหรับข้อมูล BLOB


13

ฉันเป็นกระบวนการในการวางแผนการโยกย้ายแบบสดของฐานข้อมูล 2TB ไปยังตารางที่แบ่งพาร์ติชัน ระบบกำลังพูดอย่างกว้างขวางในการจัดเก็บเอกสารพื้นที่ส่วนใหญ่ถูกจัดสรรให้กับ LOBs ระหว่าง 50kb และ 500kb โดยมีเปอร์เซ็นต์เล็กน้อยในช่วง 500kb ถึง 1MB ส่วนหนึ่งของการโยกย้ายจะเกี่ยวข้องกับข้อมูล BCPing จากฐานข้อมูลเก่าไปยังฐานข้อมูลใหม่

BCP เป็นวิธีการที่ต้องการเนื่องจากการแบ่งปัจจุบัน / ประวัติศาสตร์ในข้อมูลอนุญาตให้แยกข้อมูลเก่าในขั้นตอน (ในช่วงเวลาที่เงียบสงบ) ล่วงหน้าของสวิตช์สุดท้ายซึ่งช่วยลดผลกระทบต่อระบบถ่ายทอดสด ปริมาณของข้อมูลและความพร้อมของการจัดเก็บติ๊ดในแหล่งกำเนิดสร้างโครงการพาร์ทิชัน

ฉันสงสัยว่าอาจมีการเพิ่มประสิทธิภาพบางอย่างจากการทดลองกับ KILOBYTES_PER_BATCH มากกว่า ROWS_PER_BATCH เนื่องจากเนื้อหา BLOB แนะนำในเอกสารคู่มือBCPที่ SQL สามารถปรับการดำเนินงานให้เหมาะสมตามค่านี้

สิ่งที่ฉันไม่สามารถหาได้คือแนวทางใด ๆ เกี่ยวกับลักษณะของการเพิ่มประสิทธิภาพเหล่านี้หรือที่ที่จะเริ่มการทดสอบของฉัน ในความไม่สมบูรณ์ของคำแนะนำฉันจะลองวิ่งระยะสั้นที่ขอบเขต 4/8/16/32 / 64mb เพื่อเริ่มต้น

อาจได้ประโยชน์จากการเปลี่ยนขนาดแพ็คเก็ต (พารามิเตอร์ BCP -a แทนที่จะเป็นการตั้งค่าระดับเซิร์ฟเวอร์) แต่ฉันมีแนวโน้มที่จะชนสิ่งนี้เป็นจำนวนสูงสุด 65535 เว้นแต่ว่าใครมีวิธีการสูตรมากขึ้น

คำตอบ:


12

นี่ไม่ใช่คำตอบสำหรับคำถามของคุณโดยตรง แต่มีบางบทความที่คุณจะได้รับประโยชน์จากการอ่าน (ในกรณีที่คุณไม่พบพวกเขาก่อน :-)) พวกเขากำลังโหลดข้อมูลจำนวนมากโดยใช้สำเนา bcp / กลุ่ม ฉันอ่านพวกเขาทั้งหมดแล้ว แต่ฉันไม่พบรายละเอียดใด ๆ เกี่ยวกับ KILOBYTES_PER_BATCH พวกเขาทั้งหมดกำลังใช้ ROWS_PER_BATCH แต่ฉันแน่ใจว่าคุณจะพบข้อมูลที่มีประโยชน์อื่น ๆ

และการอ้างอิง MSDN ที่ชัดเจน:

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


ขอบคุณแมเรียนฉันได้บุ๊คมาร์คการค้นหาใหม่สองสามรายการจากรายการครบถ้วนสมบูรณ์ ในฐานะที่เป็นงานนอกงานขั้นตอนที่เพิ่มขึ้น / การกลั่นจำนวนมากไม่เป็นประโยชน์ แต่มีเคล็ดลับมากมายที่ฉันสามารถใช้ประโยชน์ได้
Mark Storey-Smith

ใช่ฉันเข้าใจแล้วสำหรับฉันเหมือนกันคืองานครั้งเดียวและพบสิ่งที่มีประโยชน์ในรายการ มันเป็นงานที่ยอดเยี่ยมแม้ว่า :-) คุณสามารถทำแอปพลิเคชั่น. NET ขนาดเล็ก (ถ้าคุณคุ้นเคยกับ. NET) เช่นเดียวกับในบทความอื่นจาก Linchi Shea: ผลกระทบด้านประสิทธิภาพ: สคริปต์แทรกที่เหมาะสมที่สุดส่วนใหญ่ไม่สามารถเอาชนะ BulkCopyได้ คุณอาจพบเช่นเดียวกับที่เขาทำ :-)
แมเรียน

เนื่องจากดูเหมือนจะไม่มีคำแนะนำเฉพาะใด ๆ ของ BLOB สำหรับ BCP ในป่าฉันจึงทำเครื่องหมายคำตอบที่ละเอียดมากของคุณว่าเป็นที่ยอมรับ ขอบคุณอีกครั้ง.
Mark Storey-Smith

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