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:
- Pembaruan Kumulatif 2 untuk SQL Server 2016
- Pembaruan Kumulatif 5 untuk SQL Server 2012 Paket Layanan 3 (SP3)
- Pembaruan Kumulatif 7 untuk SQL Server 2014 SP1
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:
- Pembaruan kumulatif terbaru untuk SQL Server 2016
- Pembaruan kumulatif terbaru untuk SQL Server 2012 SP3
- Pembaruan kumulatif terbaru untuk SQL Server 2014 SP1
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".