Tabela não desfragmenta.
Boa tarde,
Tenho algumas tabelas na minha base que estão com avg_fragmentation_in_percent acima de 25%, por exemplo 66% e eu queria diminuir esse valor, porem não consigo. Os indices são Clusterizados. Algum motivo para esse valor não baixar mesmo eu tentando usar Rebuild, DBReindex ou o Indexdefrag?
Abs.
Respostas
- Kezan,
Quanto maior o fillfactor maior a possibilidade de fragmentação!!!
Como você realizou esta verificação da fragmentação?
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA- Marcado como RespostaKezan quarta-feira, 28 de outubro de 2009 11:21
Kezan,
quantas páginas tem os índices ?
Use a DMV sys.dm_db_index_physical_stats pra visualizar esta informação. Coluna PageCount
select *
from sys.dm_db_index_physical_stats(DB_ID(),OBJECT_ID('SUATABELA'),null,null,'detailed')
Se tiver menos que 1000 paginas, não se preocupe. O Engine não se dará o trabalho de desfragmentar pois abaixo disso provavelmente ele estará inteiro em cache e então a fragmentação é irrelevante.
Da uma olhadinha..
Já rodei rebuild mas meu índice não desfragmenta !!!!- Marcado como RespostaKezan quarta-feira, 28 de outubro de 2009 11:20
Todas as Respostas
- Boa noite
Não sei o seu caso, mas pode ser necessário você ter que alterar o FillFactor para estas tabelas
Espero ter ajudado
Anderson - DBA/MCP/MCTS/MCITP/MCT - Sua pergunta foi respondida ? Marque-a como tal! www.myspace.com/andersondpa - Meu Fillfactor esta com 80%.
Abs. - Kezan,
Quanto maior o fillfactor maior a possibilidade de fragmentação!!!
Como você realizou esta verificação da fragmentação?
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA- Marcado como RespostaKezan quarta-feira, 28 de outubro de 2009 11:21
Eu utilizei o sys.dm_db_index_physical_stats.
Abs.- Porem se deixa muito baixo você pode perder performance.... FillFactor é MUITO chato....
Aqui eu tenho algumas tabelas com fragmentação muito alta que qualquer hora eu largo mão.
No mais, utilizo um metodo "semi-automatizado" p/ calcular o FF individual com base na progressão individual das tabelas nos ultimos 3 meses e pronto...
Tks. Fausto Fiorese Branco DBA - SQL Server 2k5 São Paulo - Brasil * http://dba-sqlserver.blogspot.com/ - Kezan,
Entendi!!!!
Antes de qualquer processo de reindexação ou desfragmentação, poderia tentar atualizar as estatísticas destes índices.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA - Eu tentei baixar o FF para 30% como um teste, mas parece q ficou pior rsrs.
Vc tem algum procedimento para forçar a baixar essa fragmentação?
abs. - Eu tentei fazer isso mas ficou igual, talvez essas tabelas estejam doidas rsrs.
Abs. - Kezan,
Bom, vamos lá.
Baixar o fill factor pode tornar o processo de inserção de dados como também algumas consultas e esta table extremamente lenta!!!!
A questão é que temos que procurar identificar o que possivelmente pode estar gerando esta fragmentação.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA - Eu tentei recriar para testar, mas continuou igual. Pode ser que eu esteja fazendo algo de errado, mas tentei de todas as formas que eu conheço.
Abs. Kezan,
quantas páginas tem os índices ?
Use a DMV sys.dm_db_index_physical_stats pra visualizar esta informação. Coluna PageCount
select *
from sys.dm_db_index_physical_stats(DB_ID(),OBJECT_ID('SUATABELA'),null,null,'detailed')
Se tiver menos que 1000 paginas, não se preocupe. O Engine não se dará o trabalho de desfragmentar pois abaixo disso provavelmente ele estará inteiro em cache e então a fragmentação é irrelevante.
Da uma olhadinha..
Já rodei rebuild mas meu índice não desfragmenta !!!!- Marcado como RespostaKezan quarta-feira, 28 de outubro de 2009 11:20
- As paginas estão bem abaixo de 1000, as unicas que estão bem altas são os HEAPs, mas esse não estou considerando pela falta dos indices.
Agora estou mais tranquilo.
Abs.

