4
ฉันจะบอกได้อย่างไรว่าทำไมการแทรกในตารางที่กำหนดจึงช้า
ฉันรู้ว่า INSERT ในตาราง SQL อาจช้าด้วยเหตุผลหลายประการ: การมีอยู่ของ INSERT TRIGGERs บนโต๊ะ ข้อ จำกัด ที่บังคับใช้จำนวนมากที่ต้องตรวจสอบ (โดยปกติคือกุญแจต่างประเทศ) หน้าแยกในดัชนีคลัสเตอร์เมื่อแถวถูกแทรกในกลางตาราง การอัพเดตดัชนีที่ไม่ใช่คลัสเตอร์ทั้งหมดที่เกี่ยวข้อง การบล็อกจากกิจกรรมอื่น ๆ บนโต๊ะ เวลาตอบสนองการเขียน IO แย่ ... ทุกอย่างที่ฉันพลาดไป? ฉันจะรู้ได้อย่างไรว่าตัวไหนมีความรับผิดชอบในกรณีเฉพาะของฉัน? ฉันจะวัดผลกระทบของการแยกหน้าเทียบกับการปรับปรุงดัชนีที่ไม่ทำคลัสเตอร์กับทุกอย่างได้อย่างไร ฉันมี proc ที่เก็บไว้ซึ่งแทรกประมาณ 10,000 แถวต่อครั้ง (จากตารางชั่วคราว) ซึ่งใช้เวลาประมาณ 90 วินาทีต่อแถว 10k นั่นเป็นสิ่งที่ยอมรับไม่ได้ช้าเพราะจะทำให้เกิดการหมดเวลาอื่น ๆ ฉันได้ดูแผนการดำเนินการและฉันเห็นงาน INSERT CLUSTERED INDEX และ INDEX SEEKS ทั้งหมดจากการค้นหา FK แต่ก็ยังไม่ได้บอกฉันว่าทำไมมันถึงใช้เวลานาน ไม่มีทริกเกอร์ แต่ตารางมี FKeys …