Voltar à página principal
quarta-feira 18 setembro 2024
38

Como revisar a fragmentação de índices no SQL Server

A fragmentação de índices pode afetar significativamente o desempenho das bases de dados do SQL Server. A fragmentação ocorre quando a ordem lógica das páginas em um índice não coincide com a ordem física das páginas no armazenamento. Este guia demonstra como identificar e lidar com a fragmentação de índices.

Verificação dos Níveis de Fragmentação

Para verificar os níveis de fragmentação, você pode utilizar a seguinte consulta T-SQL:

SELECT
  S.name AS 'Schema',
  T.name AS 'Tabela',
  I.name AS 'Índice',
  DDIPS.avg_fragmentation_in_percent,
  DDIPS.page_count
FROM
  sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS DDIPS
INNER JOIN
  sys.tables T ON T.object_id = DDIPS.object_id
INNER JOIN
  sys.schemas S ON T.schema_id = S.schema_id
INNER JOIN
  sys.indexes I ON I.object_id = DDIPS.object_id
  AND DDIPS.index_id = I.index_id
WHERE
  DDIPS.database_id = DB_ID()
  AND I.name IS NOT NULL
  AND DDIPS.avg_fragmentation_in_percent > 0
ORDER BY
  DDIPS.avg_fragmentation_in_percent DESC;

Essa consulta retorna informações sobre a fragmentação de índices para todos os índices no banco de dados atual com um nível de fragmentação superior a 0%. Ela fornece detalhes como esquema, tabela, nome do índice, percentual médio de fragmentação e número de páginas.

Lidando com a Fragmentação

Para lidar com a fragmentação de índices, você pode reconstruir ou reorganizar os índices. Reconstruir um índice remove e recria o índice, enquanto reorganizar reorganiza fisicamente as páginas no nível folha do índice. A escolha entre reconstruir e reorganizar depende do nível de fragmentação e de outros fatores, como o tamanho do banco de dados e a disponibilidade de janela de manutenção.

Compartilhar:
Criado por:
Author photo

Jorge García

Fullstack developer