ระดับสูงสุดของแผนเกี่ยวข้องกับการลบแถวออกจากตารางฐาน (ดัชนีคลัสเตอร์) และการบำรุงรักษาดัชนีที่ไม่ใช่คลัสเตอร์ ดัชนีสองตัวนี้ได้รับการดูแลรักษาแบบแถวต่อแถวในเวลาเดียวกันการลบดัชนีแบบกลุ่มจะถูกประมวลผล นี่คือ "+2 ดัชนีที่ไม่ทำคลัสเตอร์" เน้นด้วยสีเขียวด้านล่าง
สำหรับอีกสองดัชนีที่ไม่ได้ทำคลัสเตอร์ตัวเพิ่มประสิทธิภาพได้ตัดสินใจว่าเป็นการดีที่สุดที่จะบันทึกคีย์ของดัชนีเหล่านี้ลงในตารางงาน tempdb (Eager Spool) จากนั้นเล่นสปูลสองครั้งเรียงลำดับโดยคีย์ดัชนีเพื่อส่งเสริมรูปแบบการเข้าถึงตามลำดับ
ลำดับการดำเนินการขั้นสุดท้ายเกี่ยวข้องกับการบำรุงรักษาxml
ดัชนีหลักและรองซึ่งไม่รวมอยู่ในสคริปต์ DDL ของคุณ:
มีไม่มากที่ต้องทำเกี่ยวกับเรื่องนี้ ดัชนีและดัชนีที่ไม่คลัสเตอร์xml
จะต้องถูกซิงโครไนซ์กับข้อมูลในตารางฐาน ค่าใช้จ่ายในการบำรุงรักษาดัชนีดังกล่าวเป็นส่วนหนึ่งของการแลกเปลี่ยนเมื่อคุณสร้างดัชนีพิเศษบนโต๊ะ
ที่กล่าวว่าxml
ดัชนีมีปัญหาโดยเฉพาะอย่างยิ่ง มันเป็นเรื่องยากมากสำหรับเครื่องมือเพิ่มประสิทธิภาพในการประเมินจำนวนแถวที่จะมีสิทธิ์ในสถานการณ์นี้อย่างแม่นยำ ในความเป็นจริงมันประเมินเกินกว่าxml
ดัชนีอย่างดุเดือดส่งผลให้หน่วยความจำเกือบ 12GB ได้รับการสืบค้นสำหรับแบบสอบถามนี้ (แม้ว่าจะใช้เพียง 28MB ที่รันไทม์):
คุณสามารถลองทำการลบในแบตช์ขนาดเล็กลงโดยหวังว่าจะลดผลกระทบของการจัดสรรหน่วยความจำมากเกินไป
คุณสามารถทดสอบประสิทธิภาพของแผนได้โดยไม่ต้องใช้วิธีแปลกOPTION (QUERYTRACEON 8795)
ๆ นี่เป็นแฟล็กการติดตามที่ไม่มีเอกสารดังนั้นคุณควรลองใช้กับระบบการพัฒนาหรือทดสอบเท่านั้นไม่ควรใช้งานจริง หากแผนผลลัพธ์เร็วขึ้นมากคุณสามารถดักจับ XML แผนและใช้เพื่อสร้าง Guide Planสำหรับคิวรีการผลิต