Applies ToSQL Server 2008 Enterprise SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise

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".

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.