CORREÇÃO: Erro quando um alerta de condição de desempenho SQL Server é gerado no SQL Server 2008 R2

Traduções de Artigos Traduções de Artigos
Artigo: 2587511 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

A Microsoft distribui correções de Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com a versão anterior de atualização de SQL Server 2008 R2 Service Pack 1 (SP1).

Sintomas

Quando um alerta de condição de desempenho SQL Server é gerado no Microsoft SQL Server 2008 R2, você pode receber a seguinte mensagem de erro:
Msg 512, nível 16, estado 1, sp_sqlagent_get_perf_counters de procedimento, 40 de linha
A subconsulta retornou mais de 1 valor. Isso não é permitido quando a subconsulta segue =,! =, <,> </,> <= ,="">, > = ou quando a subconsulta é usada como uma expressão.</=>
Além disso, a mensagem de erro é registrada no log de erros SQL Server agente nessa situação.

Observação Esse problema também ocorre em Microsoft SQL Server de 2008.

Causa

Esse problema ocorre porque a subconsulta da msdb.dbo.sp_sqlagent_get_perf_counters procedimento armazenado do sistema calcula o valor de um contador incorretamente.

A subconsulta não possui um relacionamento de associação interna para o [nome_do_objeto] colunas na condição da subconsulta. Portanto, várias linhas retornadas incorretamente e o problema mencionado na seção "Sintomas" ocorre.

Observação O msdb.dbo.sp_sqlagent_get_perf_counters sistema armazenado é executado o procedimento quando um alerta de condição de desempenho SQL Server é gerado.

Resolução

Informações da atualização cumulativa

Pacote de atualizações cumulativas 3 SQL Server 2008 R2 SP1

A correção para esse problema foi lançada em 3 do pacote de atualizações cumulativas. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas para SQL Server 2008 R2 SP1, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2591748 Pacote de atualizações cumulativas 3 SQL Server 2008 R2 SP1
Observação Como as compilações são cumulativas, cada nova versão de atualização contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior SQL Server 2008 R2 SP1 lançamento da atualização. Recomendamos que você considere a aplicação a versão de atualização mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2567616 SQL Server 2008 R2 compilações lançados após o SQL Server 2008 R2 SP1 foi lançado.


Como contornar

Para contornar esse problema, atualize a subconsulta da msdb.dbo.sp_sqlagent_get_perf_counters procedimento armazenado do sistema. Para fazer isso, adicione a seguinte condição para o ONDE cláusula das quatro subconsultas utilizadas na [valor] cálculo da coluna:
(spi1.[object_name] = spi2.[object_name])
Depois de adicionar a condição, subconsultas semelhante ao seguinte:
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

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Propriedades

Artigo: 2587511 - Última revisão: 17 de outubro de 2011 - Revisão: 1.0
A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2587511 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 2587511

Submeter comentários

 

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