Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Firma Microsoft rozprowadza poprawki dodatku Service Pack 1 (SP1) dla programu Microsoft SQL Server 2008 R2 jako jeden plik do pobrania. Ponieważ poprawki są kumulatywne, każde nowe wydanie zawiera wszystkie poprawki i wszystkie aktualizacje zabezpieczeń, które zostały dołączone do poprzedniej wersji aktualizacji dodatku SQL Server 2008 R2 z dodatkiem Service Pack 1 (SP1).

Symptomy

Po uruchomieniu alertu o stanie wydajności programu SQL Server w programie Microsoft SQL Server 2008 R2 może zostać wyświetlony następujący komunikat o błędzie:

Msg 512, poziom 16, stan 1, sp_sqlagent_get_perf_counters procedury, wiersz 40Subquery zwrócił więcej niż 1 wartość. Nie jest to dozwolone, gdy podkwerendą jest następująca wartość =,! =, <, <=, >, >= lub gdy podkwerenda jest używana jako wyrażenie.

Ponadto w takiej sytuacji komunikat o błędzie jest rejestrowany w dzienniku błędów programu SQL Server Agent.Uwaga Ten problem występuje również w programie Microsoft SQL Server 2008.

Przyczyna

Ten problem występuje, ponieważ podkwerenda procedury składowanej systemu msdb.dbo.sp_sqlagent_get_perf_counters błędnie oblicza wartość licznika. W podkwerendzie dla kolumny [object_name] w warunku podkwerendy brakuje relacji sprzężenia wewnętrznego. Z tego powodu wiele wierszy jest błędnie zwróconych, a problem występujący w sekcji "Symptomy".Uwaga Procedura składowana systemu msdb.dbo.sp_sqlagent_get_perf_counters jest uruchamiana, gdy zostanie podniesiony alert dotyczący wydajności programu SQL Server.

Rozwiązanie

Informacje o aktualizacji zbiorczej

Pakiet aktualizacji zbiorczej 3 dla programu SQL Server 2008 R2 z dodatkiem SP1

Poprawka dotycząca tego problemu została po raz pierwszy wydana w pakiecie aktualizacji zbiorczej 3. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2008 R2 z dodatkiem SP1, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2591748 Pakiet aktualizacji zbiorczej 3 dla programu SQL Server 2008 R2 z dodatkiem SP1Uwaga Ponieważ kompilacja jest zbiorcza, każda nowa wersja aktualizacji zawiera wszystkie poprawki i wszystkie aktualizacje zabezpieczeń, które zostały dołączone do poprzedniej wersji aktualizacji programu SQL Server 2008 R2 z dodatkiem SP1. Zalecamy zastosowanie najnowszego wydania aktualizacji, który zawiera tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2567616 Kompilacje programu SQL Server 2008 R2 wydane po opublikowaniu programu SQL Server 2008 R2 SP1

Obejście

Aby obejść ten problem, zaktualizuj podkwerendę procedury składowanej systemu msdb.dbo.sp_sqlagent_get_perf_counters . Aby to zrobić, Dodaj następujący warunek do klauzuli WHERE czterech podkwerend, które są używane w obliczaniu kolumny [Value] :

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

Po dodaniu warunku podkwerendy przypominają następujące:

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

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×