Belirtiler
Microsoft SQL ServerSQL Server 2014 kullandığınızı varsayalım. SQL Server 2014 Sürüm Notları'nda yer alan aşağıdaki iki sorunla karşılaşabilirsiniz:
Eksik dizin ayrıntıları yanlış Bellek için iyileştirilmiş tablo için rapor sütunları dahil edildi
Sorun: SQL Server 2014, bellek için iyileştirilmiş bir tablodaki bir sorgu için eksik bir dizin algılarsa, SHOWPLAN_XML ve sys.dm_db_missing_index_details gibi eksik dizin DMV'lerinde eksik bir dizin olduğunu bildirir. Bazı durumlarda, eksik dizin ayrıntıları dahil edilen sütunları içerebilir. Tüm sütunlar bellek için iyileştirilmiş tablolardaki tüm dizinlere örtük olarak dahil edildiğinden, bellek için iyileştirilmiş dizinlere sahip dahil edilen sütunların açıkça belirtilmesine izin verilmez.
Eksik dizin ayrıntıları, bir karma dizin varsa ancak sorgu için uygun değilse eksik dizinleri yok sayar
Sorun: Bir sorguda başvurulan, bellek için iyileştirilmiş bir tablonun sütunlarında bir KARMA dizininiz varsa, ancak dizin sorgu için kullanılamıyorsa, SQL Server 2014 her zaman SHOWPLAN_XML'da ve DMV sys.dm_db_missing_index_details eksik bir dizin bildirmez.
Özellikle, bir sorgu, dizin anahtarı sütunlarının bir alt kümesini içeren eşitlik yüklemleri içeriyorsa veya dizin anahtarı sütunlarını içeren eşitsizlik koşulları içeriyorsa, KARMA dizini olduğu gibi kullanılamaz ve sorguyu verimli bir şekilde yürütmek için farklı bir dizin gerekir.
Neden
Sorunlar, sorgu iyileştiricisindeki eksik dizin mantığının disk tabanlı tablolardaki geleneksel kümelenmemiş dizinler ile bellek için iyileştirilmiş tablolardaki yeni dizin türleri arasında ayrım yapmamasından kaynaklanır.
Çözüm
Sorunlar ilk olarak SQL Server'un bir sonraki toplu güncelleştirmesinde düzeltildi.
SQL Server 2014 için Toplu Güncelleştirme 1 /en-us/help/2931693
SQL Server toplu güncelleştirmeleri hakkında
SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmeye dahil edilen 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 atın:
Geçici çözüm
Bu sorunları geçici olarak çözmek için aşağıdaki geçici çözümleri kullanın:
Şu sorun için geçici çözüm: Eksik dizin ayrıntıları yanlış raporda bellek için iyileştirilmiş tablo için sütunları dahil edildi
Bellek için iyileştirilmiş tablolardaki dizinler ile INCLUDE yan tümcesini belirtmeyin.
Sorun için geçici çözüm: Eksik dizin ayrıntıları, bir karma dizin varsa ancak sorgu için uygun değilse eksik dizinleri yok sayar
Karma dizinleri kullanıyorsanız, sorguların dizin anahtarının bir alt kümesindeki Dizin Arama işlemlerinden veya eşitsizlik koşullarındaki Dizin Arama işlemlerinden yararlanıp yararlanamayacağını belirlemek için sorguları ve sorgu planlarını inceleyin. Dizin anahtarının bir alt kümesinde arama yapmanız gerekiyorsa, ya NONCLUSTERED dizin kullanın ya da tam olarak aramanız gereken sütunlarda bir HASH dizini kullanın. Bir eşitsizlik koşulu aramanız gerekiyorsa, HASH yerine NONCLUSTERED dizini kullanın.
Not: Geçici çözümler SQL Server'dan alınmıştır. SQL Server 2014 Sürüm Notları
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.