Microsoft mendistribusikan Microsoft SQL Server 2008 R2 Paket Layanan 1 (SP1) atau Microsoft SQL Server 2012 perbaikan dalam satu file yang dapat diunduh. Karena perbaikan bersifat kumulatif, setiap Edaran baru berisi semua hotfix dan semua pembaruan keamanan yang disertakan dengan SQL Server 2008 R2 Service Pack 1 (SP1) sebelumnya atau Pembaruan Microsoft SQL Server 2012.
Gejala
Pertimbangkan skenario berikut:
-
Anda menginstal contoh Microsoft SQL Server 2008 R2 atau Microsoft SQL Server 2012 di komputer.
-
Pernyataan bersamaan yang menyerupai yang berikut ini dieksekusi dalam contoh:
CREATE PROC p AS RETURN (
query
); EXEC p;
Atau, Anda menjalankan kueri yang berisi kode berikut:
IF EXISTS(
subquery
);
-
Penggunaan CPU secara konsisten tinggi, dan utas kerja berada dalam status runnable.
-
Sanggahan untuk QUERY_EXEC_STATS spinlock sangat tinggi. Misalnya, hitungan spin, kemungkinan tabrakan, dan nilai yang dikembalikan untuk QUERY_EXEC_STATS spinlock dengan cepat.Catatan Untuk informasi selengkapnya tentang cara memantau QUERY_EXEC_STATS spinlock, lihat bagian "informasi selengkapnya".
Dalam skenario ini, kinerja yang lambat mungkin terjadi.
Penyebab
Masalah ini karena terjadi SQL Server 2008 R2 atau SQL Server 2012 membuat dan merusak beberapa struktur memori tentang statistik global dan bukan caching mereka. Hal ini menyebabkan penyumbatan kinerja.
Pemecahan Masalah
Informasi pembaruan kumulatif
SQL Server 2012
Perbaikan untuk masalah ini pertama kali dirilis dalam pembaruan kumulatif 1 untuk SQL Server 2012. Untuk informasi selengkapnya tentang paket pembaruan kumulatif ini, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
2679368 Paket pembaruan kumulatif 1 untuk SQL Server 2012Catatan Karena Build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server 2012 sebelumnya. Microsoft menganjurkan agar Anda mempertimbangkan penerapan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
2692828 Build 2012 SQL Server yang dirilis setelah SQL Server 2012 dirilis Anda harus menerapkan hotfix SQL Server 2012 ke instalasi SQL Server 2012.
Paket pembaruan kumulatif 5 untuk SQL Server 2008 R2 SP1
Perbaikan untuk masalah ini pertama kali dirilis dalam pembaruan kumulatif 5. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif ini untuk SQL Server 2008 R2 SP1, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
2659694 Paket pembaruan kumulatif 5 untuk SQL Server 2008 R2 SP1Catatan Karena Build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server 2008 R2 SP1 sebelumnya. Kami menyarankan agar Anda mempertimbangkan untuk menerapkan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
2567616 Build SQL Server 2008 R2 yang dirilis setelah SQL Server 2008 R2 SP1 dirilis
Informasi Selengkapnya
Untuk memantau QUERY_EXEC_STATS spinlock, Sesuaikan penundaan dan jumlah iterasi yang sesuai untuk lingkungan Anda dalam kode berikut, lalu jalankan:
SET NOCOUNT ONCREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())DECLARE @counter int = 1WHILE @counter < 10 BEGIN INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS') WAITFOR DELAY '00:00:05' SET @counter +=1 ENDSELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTimeDROP TABLE #spins
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".