Các mức cao nhất của kế hoạch liên quan đến việc loại bỏ các hàng khỏi bảng cơ sở (chỉ mục được nhóm) và duy trì bốn chỉ mục không bao gồm. Hai trong số các chỉ mục này được duy trì từng hàng một cùng lúc việc xóa chỉ mục được nhóm được xử lý. Đây là "+2 chỉ mục không phân cụm" được tô sáng màu xanh lá cây bên dưới.
Đối với hai chỉ mục không bao gồm khác, trình tối ưu hóa đã quyết định tốt nhất là lưu các khóa của các chỉ mục này vào một bàn làm việc tempdb (Bộ đệm Eager), sau đó phát bộ đệm hai lần, sắp xếp theo các khóa chỉ mục để thúc đẩy mẫu truy cập tuần tự.
Chuỗi hoạt động cuối cùng liên quan đến việc duy trì các xml
chỉ mục chính và phụ , không được bao gồm trong tập lệnh DDL của bạn:
Không có nhiều việc phải làm về việc này. Các chỉ mục và xml
chỉ mục không bao gồm phải được giữ đồng bộ hóa với dữ liệu trong bảng cơ sở. Chi phí duy trì các chỉ mục như vậy là một phần của sự đánh đổi mà bạn thực hiện khi tạo các chỉ mục bổ sung trên một bảng.
Điều đó nói rằng, các xml
chỉ số là đặc biệt có vấn đề. Rất khó để trình tối ưu hóa đánh giá chính xác có bao nhiêu hàng sẽ đủ điều kiện trong tình huống này. Trên thực tế, nó ước tính quá mức cho xml
chỉ mục, dẫn đến gần 12GB bộ nhớ được cấp cho truy vấn này (mặc dù chỉ có 28 MB được sử dụng trong thời gian chạy):
Bạn có thể xem xét thực hiện xóa trong các lô nhỏ hơn, hy vọng sẽ giảm tác động của việc cấp bộ nhớ quá mức.
Bạn cũng có thể kiểm tra hiệu suất của một kế hoạch mà không cần sử dụng OPTION (QUERYTRACEON 8795)
. Đây là một cờ theo dõi không có giấy tờ, vì vậy bạn chỉ nên thử nó trên một hệ thống phát triển hoặc thử nghiệm, không bao giờ được sản xuất. Nếu kế hoạch kết quả nhanh hơn nhiều, bạn có thể nắm bắt kế hoạch XML và sử dụng nó để tạo Hướng dẫn kế hoạch cho truy vấn sản xuất.