Vzťahuje sa na
SQL Server 2008 Enterprise SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise

Microsoft distribuuje Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) opravy ako jeden súbor na stiahnutie. Keďže opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchlych opráv a všetky aktualizácie zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania aktualizácie SQL Server 2008 R2 Service Pack 1 (SP1).

Príznaky

Keď sa v Microsoft SQL Server 2008 R2 zobrazí upozornenie o stave výkonu SQL servera, môže sa zobraziť nasledujúce chybové hlásenie:

MSG 512, úroveň 16, štát 1, postup sp_sqlagent_get_perf_counters, 40Subquery riadkov vrátil viac ako 1 hodnotu. Toto nie je povolené, ak poddotaz nasleduje =,! =, <, <=, >, >= alebo keď sa poddotaz použije ako výraz.

Okrem toho sa chybové hlásenie zapíše do denníka chýb SQL servera agent v tejto situácii.Poznámka: Tento problém sa vyskytuje aj v Microsoft SQL Server 2008.

Príčina

Tento problém sa vyskytuje, pretože poddotaz systému msdb.dbo.sp_sqlagent_get_perf_counters uložená procedúra vypočítava hodnotu počítadla nesprávne. Poddotaz nemá vzťah vnútorného spojenia pre stĺpec [object_name] v podmienke poddotazu. Z tohto dôvodu sa nesprávne vracajú viaceré riadky a vyskytuje sa problém uvedený v časti príznaky.Poznámka: Msdb.dbo.sp_sqlagent_get_perf_counters systém uložená procedúra sa spustí pri vznesení upozornenia na stav výkonu SQL servera.

Riešenie

Kumulatívna aktualizácia informácií

Kumulatívna aktualizácia balíka 3 pre SQL Server 2008 R2 SP1

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii balíka 3. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií pre SQL Server 2008 R2 SP1 nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2591748 Kumulatívna aktualizácia balíka 3 pre SQL Server 2008 R2 SP1Poznámka: Keďže zostavy sú kumulatívne, každé nové vydanie aktualizácie obsahuje všetky rýchle opravy a všetky aktualizácie zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania aktualizácie SQL servera 2008 R2 SP1. Odporúčame, aby ste zvážili použitie najnovších aktualizácií, ktoré túto rýchlu opravu obsahujú. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

2567616 Zostavy SQL servera 2008 R2, ktoré boli vydané po vydaní SQL servera 2008 R2 SP1

Alternatívne riešenie

Ak chcete tento problém obísť, aktualizujte poddotaz msdb.dbo.sp_sqlagent_get_perf_counters uloženej procedúry systému. Ak to chcete urobiť, pridajte nasledujúcu podmienku k klauzule where zo štyroch poddotazov, ktoré sa používajú v rámci výpočtu stĺpca [hodnota] :

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

Po pridaní podmienky sa Poddotazy podobajú takto:

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

Stav

Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.