Belirtiler
SQL Server 2014 Service Pack 1 (SP1), SQL Server 2012 SP3 veya SQL Server 2016 sürümünü yükledikten sonra, sunucu yeniden başlatılana kadar yavaş sorgu performansı ve yükseltilmiş ayrıcalıklı (çekirdek) mod CPU kullanımı sorunuyla karşılaşırsınız. Ayrıca yüksek hacimli PAGELATCH_* beklemeler de görebilirsiniz.
Çözüm
Sorun, SQL ServerSQL Server'ın aşağıdaki toplu güncelleştirmelerinde düzeltildi:
- Cumulative Update 2 for SQL ServerSQL Server 2016
- SQL Server 2012 Service Pack 3 (SP3) için Toplu Güncelleştirme 5
- SQL Server 2014 SP1 için Toplu Güncelleştirme 7
Öneri: SQL Server için en son toplu güncelleştirmeyi yükleyin
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ştirmeleri indirip yüklemenizi öneririz:
- SQL Server 2016 için en son toplu güncelleştirme
- SQL Server 2012 SP3 için en son toplu güncelleştirme
- SQL Server 2014 SP1 için en son toplu güncelleştirme
Neden
SQL ServerSQL Server, dinamik mandal promosyonu ve indirgeme mantığı (süper/alt mandal) kullanır. Bu, bir mandaldaki alma sayısını ve mandal çekişmesi yoksa aynı mandalı almanın ne kadar süreceğini takip ederek SQL Server performansını ve ölçeklenebilirliği geliştirir. Ardından, uygun mandallar bu modele göre tanıtılır (süper mandal). Bir Yığın veya BTree'de (HoBT) çok sayıda değişiklik (ekleme/güncelleştirme/silme) olduğunda, HoBT ile ilişkili mandallar süper mandal durumuna yükseltilebilir. Ancak, indirgeme otomatik olarak gerçekleşmez. Bu makalede süper/alt kilitleme hakkında daha fazla bilgi edinebilirsiniz.
Bu HoBT'ler daha sonra serbest bırakılırsa, serbest bırakılan HoBT yeniden kullanım için genel bir önbelleğe geri döner. Bu HOBT yeniden kullanıldığında, HoBT'de herhangi bir çekişme olmasa bile, daha önce tanıtılan mandalı yeniden kullanır. Bu da CPU yükünü artırır. Bu davranış, sunucu yeniden başlatılana kadar SQL Server'in ayrıcalıklı (çekirdek) modu CPU kullanımını artırır. Bu artış genellikle her yürütmede birkaç mikrosaniyeden fazla eklemez. Ayrıca, HoBT'lerdeki bu uzatılmış süper mandallar nedeniyle yüksek hacimli PAGELATCH_* beklemeleri görebilirsiniz.
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.