Microsoft izplata Microsoft SQL Server 2008 R2 1. servisa pakotnes (SP1) labojumus kā vienu lejupielādējamo failu. Tā kā labojumi ir kumulatīvi, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības atjauninājumi, kas iekļauti iepriekšējā SQL Server 2008 R2 1. servisa pakotnes (SP1) atjaunināšanas laidienā.

Simptomi

Ja sistēmā Microsoft SQL Server 2008 R2 ir kāpināta SQL Server veiktspējas nosacījuma brīdinājums, iespējams, tiek parādīts šāds kļūdas ziņojums:

Msg 512, Level 16, State 1, Procedure sp_sqlagent_get_perf_counters, Line 40Subquery atgriež vairāk nekā 1 vērtību. Tas nav atļauts, ja apakšvaicājums seko =,! =, <, <=, >, >= vai kad apakšvaicājums tiek izmantots kā izteiksme.

Turklāt kļūdas ziņojums tiek pieteikts SQL Server Agent kļūdu žurnālā šajā situācijā.Piezīme. Šī problēma pastāv arī programmā Microsoft SQL Server 2008.

Cēlonis

Šī problēma rodas tāpēc, ka MSDB.dbo.sp_sqlagent_get_perf_countersās sistēmas saglabātās procedūras apakšvaicājumā tiek aprēķināta nepareizi skaitītāja vērtība. Apakšvaicājumam trūkst iekšējās savienošanas relācijas apakšvaicājuma nosacījumā [object_name] . Tādēļ vairākas rindas ir nepareizi atgrieztas, un tiek parādīta sadaļa "Simptomi".Piezīme. MSDB.dbo.sp_sqlagent_get_perf_counters sistēmas iekļautā procedūra tiek izpildīta, kad tiek kāpināts SQL Server veiktspējas brīdinājuma brīdinājums.

Risinājums

Kumulatīvās atjaunināšanas informācija

Kumulatīvās atjaunināšanas pakotne 3 SQL Server 2008 R2 SP1

Šīs problēmas labojums pirmo reizi tika izlaists kumulatīvās atjaunināšanas pakotnē 3. Lai iegūtu papildinformāciju par to, kā iegūt SQL Server 2008 R2 SP1 kumulatīvās atjaunināšanas pakotni, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:

2591748 Kumulatīvās atjaunināšanas pakotne 3 SQL Server 2008 R2 SP1Piezīme. Tā kā būvējumi ir kumulatīvi, katram jaunam atjauninājuma laidienam ir visi labojumfaili un visi drošības atjauninājumi, kas iekļauti iepriekšējā SQL Server 2008 R2 SP1 atjaunināšanas laidienā. Iesakām apsvērt jaunāko atjauninājumu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:

2567616 SQL Server 2008 R2 būvējumi, kas tika izlaisti pēc tam, kad tika izlaists SQL Server 2008 R2 SP1

Risinājums

Lai novērstu šo problēmu, atjauniniet MSDB.dbo.sp_sqlagent_get_perf_counters System saglabāto procedūru apakšvaicājumu. Lai to izdarītu, pievienojiet šādu nosacījumu četriem apakšvaicājumiem WHERE , kas tiek izmantoti kolonnas [vērtība] aprēķinā.

(spi1.[object_name] = spi2.[object_name])

Pēc nosacījuma pievienošanas Apakšvaicājumi atgādina šādus datus:

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

Statusa

Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar tulkojuma kvalitāti?
Kas ietekmēja jūsu pieredzi?

Paldies par jūsu atsauksmēm!

×