Gejala
Ketika penyisipan bersamaan terlalu banyak terjadi di Bucket hash yang sama, atau cache paket SQL Server ad hoc mencapai batas entri 160.036, perselisihan parah pada SOS_CACHESTORE spinlock terjadi. Dalam situasi ini, penggunaan CPU yang tinggi terjadi di Microsoft SQL Server.
Penyebab
Masalah ini terjadi ketika singgahan paket SQL Server mencapai batas entri, dan paket yang memiliki biaya rendah harus dihapus untuk menyisipkan paket baru. Hal ini menyebabkan perselisihan berat untuk SOS_CACHESTORE spinlock yang menyediakan sinkronisasi untuk Bucket Tabel hash dari singgahan paket SQL Server.
Pemecahan Masalah
Informasi pembaruan kumulatif
Masalah ini pertama kali diperbaiki dalam pembaruan kumulatif SQL Server berikut ini.
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Informasi Selengkapnya
Cache rencana memiliki dua batas: ukuran total dan jumlah total semua paket. Batas ukuran dan entri dijelaskan dalam laporan ini:
Perencanaan tembolok internals
Jumlah maksimum entri yang bisa ditahan oleh cache rencana adalah empat kali jumlah Bucket. Anda dapat memverifikasi informasi ini dengan menjalankan kueri berikut ini:
select name, type, buckets_count
from sys.dm_os_memory_cache_hash_tables
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
select name, type, pages_kb, entries_count
from sys.dm_os_memory_cache_counters
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
Misalnya, pada sistem bit 64, jumlah bucket untuk singgahan paket SQL Server adalah 40.009. Oleh karena itu, jumlah maksimum entri yang bisa pas di dalam singgahan paket SQL Server adalah 160.036.
Jika Anda memiliki beban kerja yang menggunakan kueri ad hoc berbeda, batasan ini dapat menjadi hambatan. Perubahan yang dibuat oleh perbaikan terbaru ini membahas situasi ini. Setelah Anda menginstal hotfix ini dan mengaktifkan perubahan dengan menggunakan bendera pelacakan startup "-T 174," jumlah Bucket ditingkatkan ke 160.001 pada sistem 64-bit. Cache rencana kemudian dapat menampung maksimum paket 640.004.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".