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:

[code language=”sql”]
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;
[/code]

 

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.

7 pensou em “Dicas para um DBA Iniciante – Analisando fragmentação de índices

  1. Wilson Paes

    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%.

    Responder
  2. Fernando akira Tajima

    index_id name avg_fragmentation_in_percent
    1 PK_Pasta 89,4042891183479

    89.404 é muito alto?

    Responder
  3. Rodrigo S

    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?

    Responder

Deixe uma resposta