Qual a fragmentação dos Indices

É importante verificar a fragmentação de um indice, pois isso pode indicar tanto problema na manutenção em Geral dos Bancos de Dados como problemas de Design dos Índices .

Podemos ter problemas diretos e indiretos relacionados a fragmentação de um indice.

Problemas Diretos

  • Aumento de leituras, sobrecarregando os discos
    Quando um indice esta fragmentado é como se tivessemos um livro onde após a página 89 você passa a ter a página 90, assim se você quer copiar da pagina 85 a 95 você terá o trabalho extra de localizar as páginas que estão fora de ordem.
  • Ordem de colunas incorreta ou FillFactor incorreto
    Normalmente deve ser criado indices colocando primeiro colunas que tem mais valores distintos, mas as vezes essa organização não satisfaz bem determinada consulta “então precisamos analisar caso a caso”.
    Campos que possuem campos como chave que são frequentemente alterados , devem utilizar um fillfactor entre 70 e 90, pois quando um registro é alterado para “continuar na mesma pagina” ele deve ter espaço para isso , se a pagina esta totalmente preenchida o registro acaba sendo colocado em outra pagina ocasionando assim a fragmentação.

Problemas Indiretos

  • Estatisticas Desatualizadas
    Se o indice estão fragmentados provavelmente as estatisticas não sejam atualizadas também, pois normalmente a estatistica de um indice é atualizada automaticamente quando o SQL Server esta habilitado “mas quase nenhum DBA confia nisso … neu eu =)” , outras possibilidades é atualizando diretamente a estatistica ou com Rebuild do indice “lembre-se que reorganzine não atualiza a estatistica”.
  • Plano de Execução de Consultas Inconsistente
    Com indices fragmentados e estatisticas desatualizadas provavelmente o SQL Server  não consiga gerar um plano de execução adequado para uma consulta. Isso além de gerar problema de consultas irá gerar mais IO, CPU e Memória, pois o Servidor precisara de mais recursos por não estar utilizando o melhor caminho de execução.

Com todos esses problemas que podem ser ocasionados, podemos ter um Cenário que aparentemente o Servidor necessite de mais memória, processador e CPU , mas na verdade o mesmo está com esse sintoma por estar realizando mais trabalho que ele realmente precisa fazer.

Por isso é importante analisar todos os pontos antes de decidir que decisão tomar pra solucionar um problema.

Identificando Fragmentação: http://blog.sqlauthority.com/2010/01/12/sql-server-fragmentation-detect-fragmentation-and-eliminate-fragmentation/

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s