Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Корпорація Майкрософт поширює Microsoft SQL Server 2008 R2 Service Pack 1 (SP1), як один файл для завантаження. Оскільки виправлення є сукупними, у кожному новому випуску містяться всі поточні виправлення та всі оновлення системи безпеки, які були включені до попередньої версії SQL Server 2008 R2 Service Pack 1 (SP1).

Ознаки

Якщо оповіщення про стан продуктивності SQL Server підвищився в Microsoft SQL Server 2008 R2, може з'явитися таке повідомлення про помилку:

MSG 512, рівень 16, стан 1, процедура sp_sqlagent_get_perf_counters, лінія 40Підзапит повернув більше 1 значення. Це не дозволяється, якщо підзапит слід =,! =, <, <=, >, >= або коли підзапит використовується як вираз.

Крім того, у цій ситуації в журналі помилок агента SQL Server записується повідомлення про помилку.Примітка. Ця проблема також виникає в Microsoft SQL Server 2008.

Причина

Ця проблема виникає через те, що підзапит системи msdb.DBO.sp_sqlagent_get_perf_counters Збережена процедура обчислює значення лічильника неправильно. Підзапит не має внутрішнього об'єднання зв'язків для стовпця [object_name] у стані підзапиту. Тому кілька рядків неправильно повертаються, а проблема, згаданим у розділі "ознаки", відбувається.Примітка. Система msdb.DBO.sp_sqlagent_get_perf_counters Збережена процедура запускається, коли буде підвищена оповіщення про стан продуктивності сервера SQL Server.

Спосіб вирішення

Відомості про Сукупне оновлення

Сукупний пакет оновлень пакета 3 для SQL Server 2008 R2 SP1

Виправлення для цієї проблеми уперше випущено в пакеті накопичувальне оновлення 3. Щоб отримати докладні відомості про отримання цього сукупного оновлення пакета для SQL Server 2008 R2 SP1, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:

2591748 Сукупний пакет оновлень пакета 3 для SQL Server 2008 R2 SP1Примітка. Оскільки пакет містить сукупну версію, у кожному новому випуску оновлення містяться всі поточні виправлення та всі оновлення системи безпеки, які були включені до попереднього випуску попередньої версії SQL Server 2008 R2 SP1. Радимо, що ви розгляньте застосування найновішої версії оновлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:

2567616 Випущено пакет версії SQL Server 2008 R2, випущеній після випуску SQL Server 2008 R2 SP1

Інші способи вирішення

Щоб вирішити цю проблему, оновіть підзапит збереженої процедури msdb.DBO.sp_sqlagent_get_perf_counters системи. Для цього додайте таку умову до речення WHERE в чотирьох підзапитах, які використовуються в обчисленні стовпців [Value] :

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

Після додавання умови підзапити нагадують наведені нижче дії.

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

Стан

Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×