Belirtiler
Büyük bir tablonun uzamsal veri türünde dizin oluşturmaya çalıştığınızda (CREATE INDEX veya ALTER INDEX kullanarak), Microsoft SQL Server 2012 veya SQL Server 2014 performansı kötü performans gösterebilir. SOS_CACHESTORE ve SOS_SELIST_SIZED_SLOCK'de birçok spinlock çekişmesi bulabilirsiniz.
Çözüm
Sorun ilk olarak aşağıdaki toplu SQL Server güncelleştirmesinde düzeltilmiştir.
SQL Server 2014 için Toplu Güncelleştirme 1 /en-us/help/2931693
SQL Server 2012 SP1 için Toplu Güncelleştirme 7 /en-us/help/2894115
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:
- SQL Server 2014 için en son toplu güncelleştirme
- SQL Server 2012 SP1 için en son toplu güncelleştirme
Düzeltme güncelleştirme paketi bilgileri Desteklenen bir düzeltme Microsoft tarafından sunulmaktadır. Ancak, bu düzeltme yalnızca bu makalede açıklanan sorunu düzeltmeye yöneliktir. Bu düzeltmeyi yalnızca bu sorunun yaşandığı sistemlere uygulayın.
Düzeltme indirilebilir durumdaysa, bu Bilgi Bankası makalesinin en üstünde "Düzeltme İndirme Kullanılabilir" bölümü bulunmaktadır. Bu bölüm görünmüyorsa, düzeltmeyi edinmek için Microsoft Müşteri Hizmetleri ve Desteği'ne bir istek gönderin.
Not Başka sorunlar oluşursa veya sorun giderme gerekirse ayrı bir hizmet isteği oluşturmanız gerekebilir. Genel destek maliyetleri, ek destek soruları ve bu özel düzeltme için uygun olmayan sorunlara uygulanır. Microsoft Müşteri Hizmetleri ve Desteği telefon numaralarının tam listesi veya ayrı bir hizmet isteği oluşturmak için aşağıdaki Microsoft web sitesini ziyaret edin:
/contactus/?ws=support Not "Düzeltme İndirme Kullanılabilir" formu, düzeltmenin kullanılabildiği dilleri görüntüler. Dilinizi göremiyorsanız, bunun nedeni o dil için bir düzeltme olmamasıdır.
Daha Fazla Bilgi
Spinlock'lar, ortak dil çalışma zamanı (CLR) yordamı önbellek girdilerini korur. Oluşturulan veya değiştirilen bir dizin için sorgu planı genellikle bir Apply işleci veya İç İçe Geçmiş LoopLoop işleci içerir. JOIN işleminin dış tarafı, uzamsal tablodan satırları döndürür ve uzamsal işlevi yönlendirir. İşlev her çağrıldığında, bir spinlock kullanılabilir. Sorgu yüksek paralellik dereceleriyle çalıştığında, spinlock'lar bir performans sorununa neden olabilir. Aşağıdaki diyagram böyle bir uzamsal plan örneğidir.
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Başvurular
SQL Server 2012'de büyük bir tablonun uzamsal veri türünde dizin oluştururken ortaya çıkan başka bir performans sorunu hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
2887888 DÜZELTME: SQL Server 2012 örneğinde büyük bir tablonun uzamsal veri türünde dizin oluşturduğunuzda SQL Server'da performans yavaş