เรามีฐานข้อมูลการผลิตขนาดใหญ่มีขนาดประมาณ 300GB มีวิธีการใดในการปรับปรุงประสิทธิภาพของคิวรีการลบหรือไม่ ตอนนี้ความเร็วในการลบอยู่ระหว่าง 1-10k ต่อนาทีมันช้ามากสำหรับเรา
เรามีฐานข้อมูลการผลิตขนาดใหญ่มีขนาดประมาณ 300GB มีวิธีการใดในการปรับปรุงประสิทธิภาพของคิวรีการลบหรือไม่ ตอนนี้ความเร็วในการลบอยู่ระหว่าง 1-10k ต่อนาทีมันช้ามากสำหรับเรา
คำตอบ:
หากคุณพยายามที่จะลบแถวจำนวนมากในคำสั่งเดียวก็เป็นไปได้ว่าคุณกำลังรอกิจกรรมการบันทึก คุณสามารถ:
TRUNCATE
หรือ/DROP
CREATE
SELECT INTO
เพื่อใส่ข้อมูลที่คุณต้องการเก็บไว้ในตารางอื่นจากTRUNCATE
นั้นย้ายส่วนเล็ก ๆ กลับ (หรือเพียงวางตารางเก่าเปลี่ยนชื่อใหม่และใช้ข้อ จำกัด / สิทธิ์อีกครั้ง)CHECKPOINT
ล้างข้อมูลบันทึกแทนที่จะใช้การสำรองข้อมูลบันทึก แต่คุณต้องแน่ใจว่าได้ตั้งค่ากลับมาและใช้การสำรองข้อมูลเต็มรูปแบบใหม่เพื่อเริ่มต้นห่วงโซ่การบันทึกใหม่ .มีคำใบ้อยู่บ้าง แต่คุณใช้เวอร์ชั่นไหน? มันเป็นรุ่นขององค์กร? อย่างไรก็ตาม:
เพิ่มรายละเอียดเมื่อคุณทำงานกับฐานข้อมูลขนาดใหญ่ไม่มีคำตอบที่ถูกต้องเพียงคำเดียว
คุณควรลองลบมันออกเป็นชิ้น ๆ โดยอาจจะเป็นการลบแบบวนซ้ำแต่ละครั้งจะเป็นการลบทรานแซกชันของมันเองและจากนั้นทำการล้างบันทึกในตอนท้ายของการวนซ้ำแต่ละครั้ง
นอกจากนี้คุณจะต้องค้นหาหมายเลขที่คุณจะใช้เป็นค่าในกลุ่มสำหรับการลบระเบียน มันต้องมีการทดสอบอย่างละเอียดจะดีกว่าถ้าคุณสามารถทดสอบมูลค่าก้อนในหน่วย UAT ก่อน
เกี่ยวกับวิธีการดำเนินการต่อจะแนะนำให้คุณแบ่งการดำเนินการลบขนาดใหญ่ออกเป็นชิ้น ๆ
การลบอาจช้าถ้าตารางขนาดใหญ่มีคีย์ต่างประเทศแบบเรียกซ้ำ
ถ้าเป็นเช่นนั้นหาเวลาที่เหมาะสมปิดการใช้งานบริการขึ้นอยู่กับปิดการใช้งานต่างประเทศที่สำคัญ recursive ดำเนินการลบมากแล้วเรียกคืนที่สำคัญต่างประเทศอีกครั้ง
กำลังเพิ่มคะแนนอีกไม่กี่ ...
tablock
ตัวเลือกหากต้องการความช่วยเหลือเพิ่มเติมให้โพสต์คำถามที่คุณใช้ข้อมูลตารางรวมถึงข้อมูลการบล็อก