3
เพิ่มคอลัมน์การเปลี่ยนแปลงความเร็วในตารางขนาดใหญ่เป็น NON NULL
ฉันเพิ่งเพิ่มคอลัมน์บิตแบบ NULL ไปยังตารางที่มีเกือบ 500 ล้านแถว ไม่มีค่าเริ่มต้นในคอลัมน์อย่างไรก็ตามส่วนแทรกทั้งหมดกำลังระบุค่าเป็น 0 หรือ 1 และฉันใช้รูทีนแบบครั้งเดียวเพื่อกำหนด 0 หรือ 1 ให้กับแถวที่มีอยู่ทั้งหมด (อัปเดตแถวเป็นชุดเล็ก ๆ ) ตอนนี้ทุกแถวควรมี 0 หรือ 1 ในคอลัมน์นั้น ฉันต้องการทำให้คอลัมน์บิตเป็นโมฆะไม่ได้ แต่เมื่อฉันพยายามทำมันผ่านALTER TABLE t1 ALTER COLUMN c1 bit not nullมันเริ่มทำงานเป็นเวลา 3 นาทีและฉันหยุดมันเพราะมันบล็อกการอ่านตารางทั้งหมดและฉันสงสัยว่ามันจะใช้เวลานานกว่าจะเสร็จสมบูรณ์ . เป็นไปได้ที่จะใช้เวลาไม่นาน แต่ฉันไม่สามารถเสี่ยงกับการขาดความพร้อมมากเกินไป การย้อนกลับใช้เวลา 6 นาที คุณมีคำแนะนำใด ๆ เกี่ยวกับวิธีที่ฉันจะทำให้คอลัมน์ไม่เป็นโมฆะโดยที่ไม่ต้องใช้เวลาหลายชั่วโมงกว่าจะเสร็จ นอกจากนี้ยังมีวิธีใดที่จะประมาณว่าALTER TABLE ALTER COLUMNคำสั่งที่ฉันเริ่มและยกเลิกจะใช้เวลานานเท่าใด ฉันใช้ SQL Server …