Usuário com melhor resposta
Fragmentação de Indexes

Pergunta
-
Prezados,
Gostaria de saber qual percentual devo me basear se o percentual de fragmentação do indexes está bom ou ruim, na parte de fragmentação do SQL Server tem ( page fullness e total fragmentation ) qual devo observar se o percentual está alto ou não ?
Bruno Avanso
Respostas
-
Olá Bruno,
Tudo certo?
Veja esse link abaixo que vai te ajudar bastante:
http://msdn.microsoft.com/en-us/library/ms189858(v=sql.105).aspxComo o seguinte select :
SELECT a.index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'Production.Product'),
NULL, NULL, NULL) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id;
GOVocê consegue ter uma visão bem bacana sobre a fragmentação dos seus indexes e usando a excelente recomentação feita pelo nosso amigo Junior Galvão, pode as faixa abaixo para saber como proceder com cada indexes :
30% - 35% -- Taxa aceitável de fragmentação;
> 35% - 70% -- Taxa de fragmentação prejudicial, requer aplicar rotinas de manutenção;
>70% -- Taxa de fragmentação alta, obrigatório aplicar rotinas de manutenção.
Att,
Justo Daniel
MCP-MCDTS-MCTS SQL Server 2008- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 14 de junho de 2013 19:56
Todas as Respostas
-
Olá! Depende muito de como a tabela é acessada para se ter em mente uma margem de ruim ou bom, o importante é sempre manter as rotinas de manutenção, de uma lida nas informações do link abaixo, com ele voce sera capaz de desenvolver algo neste sentido:
http://www.brentozar.com/archive/2012/08/sql-server-index-fragmentation/
Abraço!
André CR / Helped? If the answer is yes mark! If the answer is no, wait a little bit because i'll back! Visit my blog! sqlmagu.blogspot.com.br
-
Bruno,
Por padrão eu costume assumir que se a taxa de fragmentação estiver acima de 35% já estamos com uma taxa considerável, a própria Microsoft indica:
- 30% - 35% -- Taxa aceitável de fragmentação;
- > 35% - 70% -- Taxa de fragmentação prejudicial, requer aplicar rotinas de manutenção;
- >70% -- Taxa de fragmentação alta, obrigatório aplicar rotinas de manutenção.
Consultando o Books On-Line você terá mais informações.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Sugerido como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 14 de junho de 2013 19:56
-
-
-
Olá Bruno,
Tudo certo?
Veja esse link abaixo que vai te ajudar bastante:
http://msdn.microsoft.com/en-us/library/ms189858(v=sql.105).aspxComo o seguinte select :
SELECT a.index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'Production.Product'),
NULL, NULL, NULL) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id;
GOVocê consegue ter uma visão bem bacana sobre a fragmentação dos seus indexes e usando a excelente recomentação feita pelo nosso amigo Junior Galvão, pode as faixa abaixo para saber como proceder com cada indexes :
30% - 35% -- Taxa aceitável de fragmentação;
> 35% - 70% -- Taxa de fragmentação prejudicial, requer aplicar rotinas de manutenção;
>70% -- Taxa de fragmentação alta, obrigatório aplicar rotinas de manutenção.
Att,
Justo Daniel
MCP-MCDTS-MCTS SQL Server 2008- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 14 de junho de 2013 19:56