Microsoft mendistribusikan perbaikan Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) sebagai satu file yang dapat diunduh. Karena perbaikan bersifat kumulatif, setiap Edaran baru berisi semua hotfix dan semua pembaruan keamanan yang disertakan dengan rilis pembaruan SQL Server 2008 R2 Service Pack 1 (SP1) sebelumnya.
Gejala
Saat pemberitahuan kondisi kinerja SQL Server yang dibesarkan di Microsoft SQL Server 2008 R2, Anda mungkin menerima pesan kesalahan berikut:
MSG 512, tingkat 16, negara bagian 1, prosedur sp_sqlagent_get_perf_counters, baris 40Subquery dikembalikan lebih dari 1 nilai. Ini tidak diperbolehkan ketika subkueri mengikuti =,! =, <, <=, >, >= atau ketika subkueri digunakan sebagai ekspresi.
Selain itu, pesan kesalahan dicatat dalam log kesalahan agen Server SQL dalam situasi ini.Catatan Masalah ini juga terjadi di Microsoft SQL Server 2008.
Penyebab
Masalah ini terjadi karena subkueri sistem msdb.DBO.sp_sqlagent_get_perf_counters disimpan prosedur menghitung nilai penghitung tidak benar. Subkueri tidak memiliki hubungan gabungan dalam untuk kolom [object_name] dalam kondisi subkueri. Oleh karena itu, beberapa baris dikembalikan dengan tidak benar, dan masalah yang disebutkan di bagian "gejala" terjadi.Catatan Prosedur msdb.DBO.sp_sqlagent_get_perf_counters disimpan sistem berjalan saat pemberitahuan kondisi kinerja SQL Server dinaikkan.
Pemecahan Masalah
Informasi pembaruan kumulatif
Paket pembaruan kumulatif 3 untuk SQL Server 2008 R2 SP1
Perbaikan untuk masalah ini pertama kali dirilis dalam paket pembaruan kumulatif 3. 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:
2591748 Paket pembaruan kumulatif 3 untuk SQL Server 2008 R2 SP1Catatan Karena Build bersifat kumulatif, setiap rilis pembaruan baru berisi semua hotfix dan semua pembaruan keamanan yang disertakan dengan rilis pembaruan SQL Server 2008 R2 SP1 sebelumnya. Kami menyarankan agar Anda mempertimbangkan penerapan rilis pembaruan 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
Penyelesaian Masalah
Untuk mengatasi masalah ini, perbarui subkueri prosedur yang disimpan sistem msdb.DBO.sp_sqlagent_get_perf_counters . Untuk melakukan ini, tambahkan kondisi berikut ini ke klausul Where dari empat subkueri yang digunakan dalam perhitungan kolom [Value] :
(spi1.[object_name] = spi2.[object_name])
Setelah Anda menambahkan kondisi, subkueri menyerupai yang berikut ini:
SELECT CASE spi2.cntr_value WHEN 0 THEN 1 ELSE spi2.cntr_value ENDFROM sys.dm_os_performance_counters spi2WHERE (spi1.[object_name] = spi2.[object_name])AND (spi1.counter_name + ' ' = SUBSTRING(spi2.counter_name, 1, PATINDEX('% Base%', spi2.counter_name)))AND (spi1.instance_name = spi2.instance_name)AND (spi2.cntr_type = @perfTypeLargeRawBase
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".