KB3162589 - PERBAIKI: Penurunan performa SQL Server ketika ada peningkatan penggunaan CPU mode istimewa dan jumlah penantian kait halaman yang tinggi

Berlaku Untuk
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Service Pack 3 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Gejala

Setelah menginstal SQL Server 2014 Paket Layanan 1 (SP1), SQL Server 2012 SP3, atau SQL Server 2016, Anda mengalami kinerja kueri yang lambat dan peningkatan penggunaan CPU mode hak istimewa (kernel) hingga server dihidupkan ulang. Anda mungkin juga melihat volume PAGELATCH_* menunggu yang tinggi.

Resolusi

Masalah ini telah diperbaiki dalam pembaruan kumulatif SQL Server berikut:

Rekomendasi: Menginstal pembaruan kumulatif terbaru untuk SQL Server

Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Kami menyarankan Anda mengunduh dan menginstal pembaruan kumulatif terbaru untuk SQL Server:

      

        
      

Penyebab

SQL Server menggunakan promosi kait dinamis dan logika penurunan pangkat (super/sub-latch). Ini meningkatkan kinerja dan skalabilitas SQL Server dengan melacak jumlah perolehan pada kait, dan berapa lama waktu yang diperlukan untuk memperoleh kait yang sama jika tidak ada persaingan kait. Kemudian, kait yang memenuhi syarat dipromosikan (super-latch) berdasarkan model ini. Ketika ada banyak perubahan (menyisipkan/memperbarui/menghapus) pada Heap atau BTree (HoBT), kait terkait HoBT dapat dipromosikan ke status super latch. Namun, penurunan pangkat tidak terjadi secara otomatis. Anda dapat membaca lebih lanjut tentang super/sub-latching di artikel ini.

Jika HoBT ini kemudian dibatalkan, HoBT yang dibebaskan akan kembali ke cache global untuk digunakan kembali. Ketika HOBT itu digunakan kembali, ia menggunakan kembali kait yang dipromosikan sebelumnya, bahkan ketika tidak ada perdebatan di HoBT. Tindakan ini akan menambahkan overhead CPU. Perilaku ini meningkatkan penggunaan CPU mode istimewa (kernel) SQL Server hingga server dihidupkan ulang. Peningkatan ini biasanya menambahkan tidak lebih dari beberapa mikrodetik dengan setiap eksekusi. Anda mungkin juga melihat volume PAGELATCH_* menunggu yang tinggi karena super-kait yang diperpanjang pada HoBT ini. 

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".