REVISIÓN: Error cuando se genera una alerta de condición de rendimiento de SQL Server en SQL Server 2008 R2

Seleccione idioma Seleccione idioma
Id. de artículo: 2587511 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Microsoft distribuye las correcciones de Service Pack 1 (SP1) de Microsoft SQL Server 2008 R2 como un archivo descargable. Debido a que las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y todas las actualizaciones de seguridad que se incluyeron con la versión anterior de actualización de Service Pack 1 (SP1) de SQL Server 2008 R2.

Síntomas

Cuando se genera una alerta de condición de rendimiento de SQL Server en Microsoft SQL Server 2008 R2, puede recibir el mensaje de error siguiente:
Msg 512, nivel 16, estado 1, procedimiento sp_sqlagent_get_perf_counters, línea 40
Subconsulta devuelve más de 1 valor. No se permite cuando la subconsulta sigue =,! =, <,> </,> <= ,="">, > = o cuando se utiliza la subconsulta como una expresión.</=>
Además, el mensaje de error se registra en el registro de errores de agente de SQL Server en esta situación.

Nota Esto también ocurre en Microsoft SQL Server 2008.

Causa

Este problema se produce porque la subconsulta de la msdb.dbo.sp_sqlagent_get_perf_counters procedimiento almacenado del sistema calcula el valor de un contador de forma incorrecta.

La subconsulta carece de una relación de combinación interna para la [objeto] columna en la condición de la subconsulta. Por lo tanto, incorrectamente se devuelven varias filas y se produce el problema que se menciona en la sección "Síntomas".

Nota El msdb.dbo.sp_sqlagent_get_perf_counters sistema de procedimiento almacenado cuando se genera una alerta de condición de rendimiento de SQL Server.

Solución

Información de actualización acumulativa

Paquete de actualización acumulativa 3 para SQL Server 2008 R2 SP1

La solución a este problema se publicó en primer lugar en el paquete de actualización acumulativa 3. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2 SP1, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2591748 Paquete de actualización acumulativa 3 para SQL Server 2008 R2 SP1
Nota Como las generaciones son acumulativas, cada nueva versión de actualización contiene todas las revisiones y publicación de la actualización de todas las actualizaciones de seguridad que se incluyeron con la anterior SQL Server R2 SP1. Le recomendamos que considere la posibilidad de aplicar la versión más reciente de actualización que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2567616 SQL Server 2008 R2 se basa que se publicaron después del lanzamiento de SQL Server 2008 R2 SP1


Solución

Para evitar este problema, actualice la subconsulta de la msdb.dbo.sp_sqlagent_get_perf_counters procedimiento almacenado del sistema. Para ello, agregue la condición siguiente a la DONDE cláusula de las cuatro subconsultas que se utilizan en la [valor] cálculo de columna:
(spi1.[object_name] = spi2.[object_name])
Después de agregar la condición, las subconsultas similar al siguiente:
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

Estado

Microsoft ha confirmado que se trata de un problema en los productos de Microsoft enumerados en la sección "Se refiere a:".

Propiedades

Id. de artículo: 2587511 - Última revisión: lunes, 17 de octubre de 2011 - Versión: 1.0
La información de este artículo se refiere a:
  • 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
Palabras clave: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2587511 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 2587511

Enviar comentarios

 

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