ไม่คุณไม่สามารถตรวจสอบสาเหตุที่ทำงานช้า แต่ฉันสามารถให้คำแนะนำ:
1) ใน SQL 2005 การจัดการของดัชนีที่ไม่ได้ทำคลัสเตอร์เปลี่ยนจาก Storage Engine (ทีมของฉัน) เป็น Query Processor สิ่งนี้มีผลข้างเคียงมากมายซึ่งหนึ่งในนั้นก็คือความเร็วที่สามารถย้ายหน้าข้อมูลกองได้โดยการย่อขนาด เร็กคอร์ดดัชนีที่ไม่ใช่คลัสเตอร์ทั้งหมดมีลิงก์ย้อนกลับไปยังเร็กคอร์ดข้อมูลที่มีการทำดัชนี - ในกรณีของฮีปนี่คือลิงค์ฟิสิคัลไปยังหมายเลขเร็กคอร์ดในหน้าข้อมูลเฉพาะ เมื่อเพจข้อมูลฮีปถูกย้ายโดยย่อขนาดเร็กคอร์ดดัชนีที่ไม่ใช่คลัสเตอร์ทั้งหมดที่ลิงก์ย้อนกลับไปยังเร็กคอร์ดบนเพจนั้นต้องถูกอัพเดตด้วยตำแหน่งใหม่ของเพจ ในปี 2000 สิ่งนี้ถูกทำขึ้นอย่างมีประสิทธิภาพโดย Storage Engine เอง ในปี 2005 เป็นต้นไปสิ่งนี้จะต้องทำโดยเรียกตัวประมวลผลคิวรีเพื่ออัพเดตเรกคอร์ดดัชนีที่ไม่ได้เป็นคลัสเตอร์ บางครั้งนี่อาจช้ากว่า 100 เท่าในปี 2000
2) ค่า LOB นอกแถว (ข้อมูลชนิด LOB จริงหรือข้อมูลแถวซ้อนกันมากเกินไป) ไม่มีลิงก์ย้อนกลับไปยังข้อมูลหรือดัชนีบันทึกที่เป็นส่วนหนึ่งของ เมื่อหน้าของระเบียน LOB ถูกย้ายตารางหรือดัชนีทั้งหมดที่เป็นส่วนหนึ่งจะต้องถูกสแกนเพื่อพิจารณาว่าระเบียนข้อมูล / ดัชนีชี้ไปที่ใดเพื่อให้สามารถอัปเดตตำแหน่งใหม่ได้ นี่ก็ช้ามากเช่นกัน
3) อาจมีกระบวนการอื่นที่ใช้ฐานข้อมูลที่ทำให้การย่อขนาดเพื่อบล็อกรอการล็อกที่ต้องการย้ายหน้า
4) คุณอาจเปิดใช้งานการแยกสแน็ปช็อตและการย่อขนาดไม่สามารถย้ายเพจที่มีลิงก์ร้านค้าเวอร์ชันได้จนกว่าธุรกรรมที่ต้องการเวอร์ชันเก่าเหล่านั้นจะเสร็จสมบูรณ์
5) ระบบย่อย I / O ของคุณอาจถูก underpowered ความยาวคิวดิสก์ที่สูงกว่าตัวเลขเดี่ยวต่ำหมายถึงระบบย่อย I / O ของคุณในคอขวด
สิ่งเหล่านี้หรือทั้งหมดอาจช่วยชะลอเวลาการหดตัว
โดยทั่วไปแล้วคุณไม่ต้องการเรียกใช้ตัวย่อ ดูโพสต์บล็อกนี้สำหรับรายละเอียด: ทำไมคุณไม่ควรลดขนาดแฟ้มข้อมูลของคุณ
หวังว่านี่จะช่วยได้!