ИСПРАВЛЕНИЕ: Ошибки при возникновении предупреждения условия производительности SQL Server в SQL Server 2008 R2

Переводы статьи Переводы статьи
Код статьи: 2587511 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Корпорация Майкрософт распространяет исправления пакета обновления 1 (SP1) для Microsoft SQL Server 2008 R2 как один загружаемый файл. Так как исправления являются накопительными, каждый выпуск содержит все исправления и все обновления безопасности, которые были включены в предыдущие версии обновления SQL Server 2008 R2 с пакетом обновления 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 Системная хранимая процедура неправильно рассчитывает значение счетчика.

Вложенный запрос не имеет отношение внутреннего объединения [имя_объекта] столбец в условии вложенный запрос. Таким образом неправильно возвращается несколько строк, и возникает проблема, описанная в разделе «Проблема».

Примечание В msdb.dbo.sp_sqlagent_get_perf_counters системные хранимые процедуры выполняется при возникновении предупреждения условия производительности SQL Server.

Решение

Накопительное обновление информации

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

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


Временное решение

Чтобы обойти эту проблему, обновите вложенного запроса из msdb.dbo.sp_sqlagent_get_perf_counters системные хранимые процедуры. Чтобы сделать это, добавьте следующие условия для ГДЕ четыре вложенные запросы, которые используются в предложении [значение] Расчет столбца:
(spi1.[object_name] = spi2.[object_name])
После добавления условия вложенных запросов следующим:
SELECT CASE spi2.cntr_value WHEN 0 THEN 1 ELSE spi2.cntr_value END
FROM sys.dm_os_performance_counters spi2
WHERE (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

Статус

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

Свойства

Код статьи: 2587511 - Последний отзыв: 17 октября 2011 г. - Revision: 1.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
Ключевые слова: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2587511 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2587511

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com