Estatísticas de banco de dados desatualizados diminuem o desempenho do SharePoint Server, causam tempos limite e geram erros de tempo de execução

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 3103194
Sobre as estatísticas do banco de dados
Estatísticas de otimização de consultas são objetos que contêm informações estatísticas sobre a distribuição de valores em uma ou mais colunas de uma tabela ou modo de exibição indexado. O otimizador de consulta usa essas estatísticas para estimar a cardinalidade ou resulta da número de linhas na consulta. Essas estimativas de cardinalidade permitem que o otimizador de consulta criar um plano de consulta de alta qualidade.

Por exemplo, o otimizador de consulta pode melhorar o desempenho usando estimativas de cardinalidade para selecionar o índice seek operador em vez do operador de digitalização do índice com uso mais intensivo de recursos de consulta. Caso contrário, as estatísticas desatualizadas podem diminuir o desempenho de consulta por meio de planos de consulta ineficiente.

Implantações do SharePoint de grande porte devem ter planos de manutenção de banco de dados para atualizar as estatísticas do banco de dados em bancos de dados que residem no Microsoft SQL Server. Os clientes não devem confiar somente nos trabalhos de manutenção de banco de dados baseado no SharePoint para executar essas tarefas. Para obter mais informações, consulte Práticas recomendadas para SQL Server em um farm do SharePoint Server.
Sintomas
Quando as estatísticas do banco de dados ficam desatualizadas, instalações do SharePoint Server podem enfrentar um ou mais dos seguintes sintomas:
  • Tempos de carregamento lento e redução do desempenho que pode gerar um erro HTTP 500 quando você abre uma página de site
  • Desempenho mais lento que gera mensagens de erro como a seguinte:

    Serviço não disponível

    Exceção de SQL desconhecido 53

    Erro de servidor no aplicativo '/' erro de tempo de execução
  • Preforming pesquisa rastreia causas inesperados de desempenho do SQL Server, o bloqueio de banco de dados e bloqueio
  • Trabalhos de timer de execução longa, como os trabalhos de "processamento de dados do Microsoft SharePoint Foundation uso" levar progressivamente mais tempo para concluir durante cada iteração
  • A impossibilidade de abrir um site do SharePoint e uma mensagem de erro semelhante à seguinte:

    System.Web.HttpException inesperado: Request timed out
  • Site renderização tempos limite quando você carregar a navegação e a seguinte mensagem de erro:

    PortalSiteMapProvider não pôde buscar os filhos do nó
  • Alto uso da CPU no servidor que está executando o SQL Server ao processamento de consultas do SharePoint
Causa
Esses problemas podem ser causados por estatísticas de banco de dados desatualizados. O SharePoint é executado diariamente um trabalho de timer para atualizar as estatísticas do banco de dados usando o procedimento do SQL proc_updatestatistics . No entanto, por vários motivos, este trabalho de timer pode não ser concluído ou pode não atualizar todas as tabelas de forma consistente. Por exemplo, se um backup estiver sendo executado no banco de dados de conteúdo do SQL Server simultaneamente com o trabalho de timer do SharePoint, o trabalho não irá continuar.

Quando terminar o trabalho de timer do SharePoint que atualiza as estatísticas, os eventos seguintes podem ser gravados os logs ULS:
  • E9BF "Erro ao atualizar as estatísticas do banco de dados, {0}"
  • cm1y "estatísticas de atualização no banco de dados, {0}"
  • dbl2 "estatísticas Ignorando atualização do banco de dados {0} porque seu status está {1}"
  • cm1x "estatísticas de atualização em todos os bancos de dados em {0}"
Se essas condições não são monitoradas de perto e não forem tomadas ações corretivas, estatísticas de banco de dados torna-se desatualizada e eventualmente ocorrer problemas de desempenho do SharePoint.
Resolução
Para evitar que esses sintomas e as possíveis interrupções no serviço, planos de manutenção do SQL Server devem ser implementados para manter estatísticas de banco de dados de conteúdo do SharePoint atualizadas usando a opção FULLSCAN. Para obter mais informações, consulte Estatísticas de índice.

Ao implementar o plano de manutenção do SQL Server para atualizar as estatísticas em seus bancos de dados do SharePoint, não é necessário desabilitar o trabalho do SharePoint. No entanto, porque essas tarefas de manutenção executam funções semelhantes em ambos os locais, é permitido para desabilitar o trabalho de timer de farm do SharePoint. Para obter mais informações sobre como gerenciar o trabalho de atualização do índice do SharePoint Server, consulte Bancos de dados usados pelo SharePoint têm estatísticas de índices (SharePoint 2013) desatualizadas.
Mais Informações
Atualização das estatísticas de bancos de dados de conteúdo do SharePoint, usando a opção FULLSCAN, em uma base diária do SQL Server é uma prática recomendada de recomendar. Para obter mais informações, consulte Práticas recomendadas para SQL Server em um farm do SharePoint Server e Manutenção de banco de dados para o SharePoint Foundation 2010.

No entanto, se seu farm do SharePoint no momento está enfrentando problemas de desempenho devido às estatísticas desatualizadas, as informações a seguir podem ser usadas como uma etapa única de atenuação para aliviar esse problema.

Para exibir informações de estatísticas de banco de dados de um banco de dados específico, execute a seguinte consulta:
-- Checking the DB Statsselect a.id as 'ObjectID', isnull(a.name,'Heap') as 'IndexName', b.name as 'TableName', stats_date (id,indid) as stats_last_updated_time from sys.sysindexes as a inner join sys.objects as b on a.id = b.object_id where b.type = 'U'
Para obter mais informações sobre análise de estatísticas do banco de dados, consulte DBCC SHOW_STATISTICS.

Para atualizar as estatísticas do banco de dados em um banco de dados que usa a opção FULLSCAN, execute a seguinte consulta:
-- Update DB StatsEXEC sp_MSforeachtable 'UPDATE STATISTICS ? WITH FULLSCAN'
Observação importante A opção "sp_MSforeachtable" é um procedimento documentado que é fornecido "como está" e só devem ser usados para minimizar o problema imediato. Não recomendamos que você use esse procedimento como parte de um plano de manutenção regular. Em vez disso, consulte nossoAtualizar estatísticas (Transact-SQL) documentação sobre como implementar um plano para atualizar estatísticas, usando a opção FULLSCAN.

Dependendo de como desatualizadas as estatísticas do banco de dados tornaram-se, talvez você precise limpar o cache do plano de consulta executando o DBCC FREEPROCCACHE comando depois de atualizar as estatísticas do banco de dados. Você encontrará a sintaxe e os argumentos para esse procedimento DBCC FREEPROCCACHE (Transact-SQL). Isso certifica-se de que novas consultas usam o plano de execução otimizado após a atualização das estatísticas da banco de dados. Por exemplo, consulte a seguinte consulta:
-- Remove all elements from the plan cacheDBCC FREEPROCCACHE
Observação importante Executando o comando DBCC FREEPROCCACHE limpa o cache para todos os planos de consulta na instância do SQL. Este comando deve ser bem entendido antes de executá-lo durante as horas de produção.

Se a DBCC FREEPROCCACHE o comando não foi executado após a atualização das estatísticas desatualizadas do banco de dados, consultas com planos de execução ineficiente poderão continuar a residir no cache e ser usadas. Se esse for o caso, forçar uma recompilação no procedimento armazenado especificado usando o procedimento armazenado (consulte sp_recompile (Transact-SQL)). Por exemplo, consulte a seguinte consulta:
USE SP2013_Content_DBGOsp_recompile proc_getwebnavstruct
Executando osp_recompile comando com parâmetros de tabela, função ou procedimento visa um único elemento no cache para remoção sem afetar a instância.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 3103194 - Última Revisão: 10/10/2015 19:41:00 - Revisão: 1.0

Microsoft SharePoint Server 2013, Microsoft SharePoint Server 2010, Microsoft Office SharePoint Server 2007

  • kbqfe kbsurveynew kbexpertisebeginner kbbug kbfix kbtshoot kbmt KB3103194 KbMtpt
Comentários