Belirtiler
Varsayılan olarak, Microsoft SQL Server 2016 ve 2017'de tempdb veritabanı için dolaylı denetim noktaları açıktır. Ağır iş yükü koşullarında bir "Verimsiz zamanlayıcı" hatası oluşabilir ve sys.dm_os_spinlock_stats DMV, DP_LIST spinlock türü için yükseltilmiş spinlock çekişmesi gösterir.
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 için aşağıdaki toplu güncelleştirmelerde düzeltildi:
SQL Server için toplu güncelleştirmeler 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 atın:
Geçici Çözüm
Bu sorunu geçici olarak çözmek için aşağıdaki Veri Tanımı Dili (DDL) deyimlerinden birini kullanarak tempdb veritabanındaki dolaylı denetim noktalarını kapatın.
Bu işlem aşağıdaki gibi yapılmalıdır:
-
modeldb veritabanında (bu, yeni veritabanları için varsayılan değeri de değiştirir), aşağıdaki deyimi çalıştırın:ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES
-
Veya aşağıdaki deyimi ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES
kullanarak SQL Server Agent kullanarak örnek her başlatıldığında doğrudan tempdb veritabanında: -
Veya aşağıdaki deyimi kullanarak tempdb veritabanında düzenli aralıklarla el ile denetim noktaları oluşturun:use tempdbgo checkpointgo Ayrıca, TF 3468 tempdb'de dolaylı denetim noktasını devre dışı bırakmak için kullanılabilir.
Başvurular
Microsoft'un yazılım güncelleştirmelerini açıklamak için kullandığı terminoloji hakkında bilgi edinin. Daha fazla bilgi için aşağıdaki makalelere bakın: