Dicas para um DBA Iniciante – Analisando fragmentação de índices

Galera,

Hoje quero passar mais uma dica para quem administra um ambiente de banco de dados SQL Server.

Uma das grandes preocupações para um DBA relacionada à performance é a taxa de fragmentação dos índices existentes em tabelas ou views.

Quanto maior a fragmentação, mais custosas são as operações de leitura e escrita nos objetos de banco de dados, e consequentemente ocorre uma brusca queda de performance em seu ambiente.

Para auxiliar nesta tarefa utilizo uma consulta que retorna todos os índices de uma determinada tabela e sua respectiva tava de fragmentação, possibilitando assim que o DBA possa iniciar um procedimento de rebuild ou reorganize destes índices.

Caso tenha interesse, basta utilizar a consulta abaixo:

SELECT 
    a.index_id, 
    name, 
    avg_fragmentation_in_percent
FROM 
    sys.dm_db_index_physical_stats (DB_ID(),
    OBJECT_ID(<nome_objeto>), NULL, NULL, NULL) AS a
JOIN 
    sys.indexes AS b ON a.object_id = b.object_id 
AND 
    a.index_id = b.index_id;

 

Quero aproveitar e deixar uma pergunta para vocês referente à índices.

Quando devemos executar uma operação de rebuild e quando devemos executar uma operação de reorganize?

Espero que tenham gostado e não deixem de inscrever-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço.

Anúncios
  1. 22/01/2015 às 15:22

    Fala amigão tudo bem? o que devo colocar nesse local ?

  2. 29/01/2015 às 17:31

    Fala Vitão, seu blog está ótimo, cheio de informações e dicas super uteis.

    Respondendo a pergunta:

    Rebuild devemos usar quando a fragmentação é superior a 30% já o reorganize quando a fragmentação não chegar aos 30%.

  3. 06/02/2015 às 10:37

    Republicou isso em Alex Souza.

  4. Fernando akira Tajima
    24/03/2015 às 11:56

    index_id name avg_fragmentation_in_percent
    1 PK_Pasta 89,4042891183479

    89.404 é muito alto?

    • 24/03/2015 às 14:07

      Grande Fernando, tudo bem contigo meu amigo?

      Qual o tamanho dessa sua tabela e quanto tem de memória RAM?

      Grande abraço.

  5. Rodrigo S
    29/03/2015 às 2:33

    Rebuild fazer a reconstrução da B-Tree completa (nó raiz até as folhas), demorando mais a reconstrução do índice e reorganize faz a reorganização somente dos das folhas da B-Tree, correto?

    • 31/03/2015 às 14:01

      Grande Rodrigo, tudo bem contigo?

      É isso mesmo.

      Grande abraço.

  1. No trackbacks yet.

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

%d blogueiros gostam disto: