Planın en üst seviyeleri, satırları temel tablodan (kümelenmiş dizin) kaldırmak ve dört kümelenmemiş dizini korumakla ilgilidir. Bu dizinlerden ikisi, kümelenmiş dizin silme işlemlerinin işlendiği sırada satır satır korunur. Bunlar, aşağıda yeşil renkle vurgulanan "+2 kümelenmemiş dizinler" dir.
Diğer iki kümelenmemiş dizin için, iyileştirici, bu dizinlerin anahtarlarının bir tempdb çalışma masasına (Eager Biriktirme) kaydedilmesinin, ardından makarayı iki kez oynatarak sıralı erişim düzenini teşvik etmek için dizin anahtarlarına göre sıralamanın en iyi olduğuna karar vermiştir.
Son işlem sırası, xml
DDL betiğinizde bulunmayan birincil ve ikincil dizinlerin bakımı ile ilgilidir :
Bu konuda yapılacak çok şey yok. Kümelenmemiş dizinler ve xml
dizinler, temel tablodaki verilerle senkronize tutulmalıdır. Bu tür dizinleri korumanın maliyeti, bir tabloda ekstra dizinler oluştururken yaptığınız ödünleşmenin bir parçasıdır.
Bununla birlikte, xml
endeksler özellikle sorunludur. Optimize edicinin bu durumda kaç satırın hak kazanacağını doğru bir şekilde değerlendirmesi çok zordur. Aslında, xml
bu sorgu için çılgınca fazla tahmin ediyor ve bu sorgu için neredeyse 12GB bellek veriliyor (ancak çalışma zamanında sadece 28MB kullanılıyor):
Aşırı bellek yardımının etkisini azaltmayı umarak silme işlemini daha küçük gruplar halinde gerçekleştirmeyi düşünebilirsiniz.
Ayrıca , bir planın performansını kullanarak sıralama yapmadan da test edebilirsiniz OPTION (QUERYTRACEON 8795)
. Bu belgelenmemiş bir izleme bayrağıdır, bu yüzden onu asla bir geliştirme veya test sisteminde denemelisiniz, asla üretimde değil. Ortaya çıkan plan çok daha hızlıysa, plan XML'sini yakalayabilir ve üretim sorgusu için bir Plan Kılavuzu oluşturmak için kullanabilirsiniz .