Belirtiler
Art arda silme için ayarlanmış bir yabancı anahtar kısıtlaması kullanan bir tablon olduğunu ve yabancı anahtar sütunundaki istatistiklerin tablodaki anahtar değerleri aralığının tamamını kapsa olmadığını varsayalım (örneğin, veri dağılımı tabloda değiştikten sonra istatistikler güncelleştirilmedi). Bu senaryoda, istatistik histogramda temsil etmeyen bir anahtar değerine karşılık gelen bir satırı silmeyi denetiğiniz ve Sorgu İyileştiricisi varsayılan kardinalite tahminini kullanıyorsa, silme işlemi beklenenden daha yavaştır. Ayrıca, başvurulan tabloda eşleşen satırları bulmak için dizin tarama işlemi de kullanılmış olabilir.
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Çözüm
Bu sorun, SQL Server'a ilişkin aşağıdaki toplu güncelleştirmelerde düzeltilmiştir:
Not: Bu düzeltme yalnızca, iyileştirici düzeltmelerini ON 'a teslim etmeniz gerekir (veritabanı kapsamındaki yapılandırma seçeneği, sorgu ipucu veya izleme bayrağı 4199 aracılığıyla).
SQL Server toplu güncelleştirmeleri hakkında:
SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmede yer alan tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atabilirsiniz:
Çözüm
Bu sorunu çözmek için aşağıdaki yöntemlerden birini kullanın:
-
Eski kardinalite tahminini kullanın. Daha fazla bilgi için Kardinalite Tahmini (SQL Server) bilgilerine bakın.
-
Yabancı Anahtar tanımından art arda silmeyi kaldırın ve geçişli silmenin eşdeğerini gerçekleştirmek için üst tablolarla alt tablolar arasında JOIN kullanarak silme işlemini gerçekleştirin.
-
Verileri silmeden önce üst tablodaki istatistikleri TAMSCAN ile güncelleştirin.
Başvurular
Microsoft'un yazılım güncelleştirmelerini açıklamak için kullandığı terminoloji hakkında bilgi alın.