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.
Fala amigão tudo bem? o que devo colocar nesse local ?
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%.
Republicou isso em Alex Souza.
index_id name avg_fragmentation_in_percent
1 PK_Pasta 89,4042891183479
89.404 é muito alto?
Grande Fernando, tudo bem contigo meu amigo?
Qual o tamanho dessa sua tabela e quanto tem de memória RAM?
Grande abraço.
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?
Grande Rodrigo, tudo bem contigo?
É isso mesmo.
Grande abraço.