Belirtiler
Microsoft SQL Server 2012 veya Microsoft SQL Sever 2014'te uzamsal veri türünü ve ilişkili yöntemleri kullandığınızda, SQL Server İşletim Sistemi (SQLOS) zamanlayıcısının kuantum hedefleri SQL Server CLR barındırma katmanı tarafından korunur. Bu koruma önleyici SQLOS anahtarları içerir, CPU tüketimini artırabilir. Önleyici anahtarın nedeni SQLOS zamanlayıcısını korumaktır. SQL Server CLR tabanlı bir uygulamaya yapılan çağrı, SQLOS zamanlayıcısına yol vermeden veya davranışı ve eşzamanlılık desenlerini değiştirmeden belirtilmemiş zaman alabilir. Bu nedenle, uzamsal veri türü her çağrı sırasında önleyici olarak geçiş yapacak şekilde tasarlanmıştır.
Not: Uzamsal veri türü SQL Server CLR'yi temel alır, çeşitli .NET bellek tüketimi ve iş parçacığı değiştirme davranışı düzeyleriyle karşılaşabilir.
Neden
Uzamsal veri türü yöntemlerinin yürütülmesi genellikle milisaniyenin altındadır ve tam SQL işletim sistemi zamanlayıcısı ve önleyici koruma gerektirmeyebilir. Önleyici moda geçme ve bu moddan çıkma ek yükü, uzamsal yöntemin kendisinin yürütülmesinden çok daha büyük olabilir.
Çözüm
Bu düzeltme, SQLOS barındırma katmanına uzamsal veri türünün önleyici korumalardan kaçınması gerektiğini belirtmek için izleme bayrağı 6531'i sunar. Bu, CPU tüketimini azaltabilir ve uzamsal etkinlikler için genel performansı iyileştirebilir. Bu izleme bayrağını yalnızca tek tek, uzamsal yöntem çağrıları (satır ve sütun başına) ~4 ms'den az sürerse kullanın. Önleyici koruma olmadan yapılan daha uzun çağrılar, zamanlayıcı eşzamanlılık sorunlarına ve hata günlüğüne kaydedilen SQLCLR ceza iletilerine yol açabilir.
Sorun ilk olarak aşağıdaki toplu SQL Server güncelleştirmesinde düzeltilmiştir.
SQL Server 2012 SP2 için Toplu Güncelleştirme 4 /en-us/help/3007556
SQL Server 2014 için Toplu Güncelleştirme 5 /en-us/help/3011055
SQL Server 2012 SP1 için Toplu Güncelleştirme 13 /en-us/help/3002044
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 2012 SP2 için en son toplu güncelleştirme
- SQL Server 2014 için en son toplu güncelleştirme
- SQL Server 2012 SP1 için en son toplu güncelleştirme
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.