CORRECÇÃO: DBREINDEX em tabelas grandes pode comprometer o número superior de tempos limite de bloqueio de extensão

Artigo: 329069 - Ver produtos para os quais este artigo se aplica.
N.º DE BUGS: 362079 (SHILOH_BUGS)
Expandir tudo | Reduzir tudo

Sintomas

Utilização de DBCC DBREINDEX para recriar todos os índices numa tabela pode causar um grande número de tempos limite de bloqueio de extensão (talvez tão elevado como várias mil centena de tempos limite por segundo) para vários segundos ou minutos. Isto poderá periodicamente repita próprio durante o processo de reindexação.

O mesmo problema também poderá ocorrer quando utiliza uma instrução CREATE INDEX... WITH DROP_EXISTING para reconstruir o índice clusterizado de uma tabela.

O grande número de tempos limite de bloqueio faz com que a operação reindexar demorar mais tempo do que deverá. Utilização da CPU aumenta também geralmente durante o tempo os tempos limite de bloqueio são elevados.

Causa

O algoritmo que SQL Server utiliza para procurar gratuitamente espaço para armazenar as novas páginas índice pode acabar por repetidamente a tentar adquirir um bloqueio de extensão ainda não estiver disponível.

Neste caso, o bloqueio de extensão do SQL Server tenta adquirir é uma extensão que tiver sido desatribuído anteriormente na transacção reindexar e não está disponível para utilização até as consolidações de transacção.

Resolução

Está disponível a partir da Microsoft uma correcção suportada. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico.

Se a correcção está disponível para transferência, existe uma secção "denominada transferência de correcção disponível" na parte superior deste artigo da base de dados de conhecimento. Se esta secção não for apresentada, submeta um pedido para o serviço de cliente do Microsoft e suporte para obter a correcção.

Nota Se ocorram problemas adicionais ou se for necessária qualquer resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem esta correcção específica. Para obter uma lista completa dos números de telefone do suporte de cliente do Microsoft ou para criar um pedido serviço separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota O formulário "Transferência de correcção disponível" apresenta os idiomas para a qual a correcção está disponível. Se não vir o idioma, é porque uma correcção não está disponível para esse idioma.A versão inglesa desta correcção tem os atributos de ficheiro (ou posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   Date          Version         Size              File name
   ------------------------------------------------------------

   13-Sep-2002   2000.80.685.0   7,467,089 bytes   Sqlservr.exe
Nota : devido a dependências de ficheiros, a correcção ou funcionalidade que contém os ficheiros mais recentes poderão também conter ficheiros adicionais.


Como contornar

Para contornar este comportamento, pode reconstruir cada índice numa transacção separada, que reduz significativamente o número de potenciais extensões que são desatribuído mas permanecem indisponível para utilização. Isto drasticamente reduz o número de limites de tempo e melhora o tempo que demora a reconstruir índices.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.

Mais Informação

Este problema normalmente a ficar pior, aumento do tamanho do tabela e o número de índices agrupados sobre a tabela aumenta.

O número de tempos limite de bloqueio é monitorizado mais facilmente utilizando o Monitor de desempenho. Seleccione o objecto SQL Server: bloqueios e, em seguida, seleccione o contador de bloqueio tempos de espera/seg para a instância de extensão.

Propriedades

Artigo: 329069 - Última revisão: terça-feira, 11 de Outubro de 2005 - Revisão: 3.5
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbautohotfix kbhotfixserver kbqfe kbbug kbfix kbqfe KB329069 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: 329069

Submeter comentários