Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Корпорация Майкрософт распространяет Microsoft SQL Server 2008 R2 с пакетом обновления 1 (SP1) и предоставляет один загружаемый файл. Поскольку исправления носят кумулятивный характер, каждый новый выпуск содержит все исправления и все обновления для системы безопасности, которые были выпущены в предыдущем выпуске сервера SQL Server 2008 R2 с пакетом обновления 1 (SP1).

Проблемы

Если в Microsoft SQL Server 2008 R2 появляется предупреждение о состоянии производительности SQL Server, может появиться следующее сообщение об ошибке:

Сообщение 512, уровень 16, состояние 1, sp_sqlagent_get_perf_counters процедуры, строка 40Subquery вернула более одного значения. Это не разрешено, если в подзапросе следует следующее: =,! =, <, <=, >, >= или, если в качестве выражения используется подчиненный запрос.

Кроме того, сообщение об ошибке регистрируется в журнале ошибок агента SQL Server в этой ситуации.Примечание. Эта проблема также возникает в Microsoft SQL Server 2008.

Причина

Эта проблема возникает из-за того, что вложенный запрос системной хранимой процедуры msdb.dbo.sp_sqlagent_get_perf_counters вычисляет значение счетчика неправильно. В подзапросе отсутствует отношение INNER JOIN для столбца [object_name] в условии подзапроса. Следовательно, несколько строк возвращаются неправильно, и возникает проблема, описанная в разделе "проблема".Примечание. Системная хранимая процедура msdb.dbo.sp_sqlagent_get_perf_counters запускается, когда создается предупреждение о состоянии производительности SQL Server.

Решение

Сведения о накопительном пакете обновления

Накопительный пакет обновления 3 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Исправление этой проблемы впервые было выпущено в пакете обобщенного обновления 3. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:

2591748 Накопительный пакет обновления 3 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск обновлений содержит все исправления и все обновления для системы безопасности, которые были включены в предыдущий выпуск обновления для SQL Server 2008 R2 SP1. Рекомендуется установить самую последнюю версию обновления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска сервера SQL Server 2008 R2 с пакетом обновления 1 (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

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×