Eu tenho um índice que tem o bloqueio de nível de página desabilitado e agora tenho problemas de fragmentação de índice para esse índice.
Eu sabia que não conseguiria Reorganize
indexar, mas acreditei que conseguiria rebuild
indexar.
Agora acho que reconstruir também não está funcionando. Estou usando o fator de preenchimento padrão de 100. Meu banco de dados é enorme, então não quero que o tamanho da tabela/db aumente fornecendo um fator de preenchimento de 80% ou menos. Por não funcionar, quero dizer que a Fragmentação Avg permanece a mesma depois de executar o script de Ola na noite anterior.
Um pouco de fundo sobre por que o bloqueio de nível de página está desabilitado.
Eu estava recebendo muitas transações deadlocks
neste índice naquela tabela em particular. Esta mesa era uma espécie de mesa de fatos onde insert, update and delete
acontecia a cada momento. E há algum foreign key
relacionamento com algumas outras tabelas com CASCADE deletes
. Então, eu estava recebendo muitos bloqueios/deadlocks e depois de desabilitar o bloqueio de nível de página, consegui me livrar de todos esses deadlocks.
Comecei a usar o script de Ola Hallengren Index maintenance
e apliquei o Index Rebuild para todos os índices para os quais o Index Reorganize não está funcionando. Mas notei que o Index Rebuild também não está funcionando.
Agora, vejo um AvgPageFragmentaiton de 95,9413 e uma contagem de páginas de 1196826 para o índice, o que não é bom.
Informação adicional:
Estou usando o script do Ola Hall conforme mostrado abaixo.
EXECUTE dbo.IndexOptimize
@Databases = 'DB_NAME',
@FragmentationLow = NULL,
@FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE',
@FragmentationHigh = ''INDEX_REORGANIZE,INDEX_REBUILD_ONLINE'',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30,
@SortInTempdb = 'Y',
@MaxDOP = 0,
@WaitAtLowPriorityMaxDuration = 0,
@WaitAtLowPriorityAbortAfterWait= 'NONE',
@Indexes = 'DB_NAME.[dbo].TB1,DB_NAME.[dbo].TB2'
Minha pergunta é como reduzir a fragmentação em um índice se o bloqueio de nível de página estiver desabilitado para esse índice?
A resposta à sua consulta está enterrada em alguma documentação :
Os motivos para isso são explicados em detalhes na seguinte postagem de blog do MSDN:
Como funciona: reconstrução do índice online – pode causar maior fragmentação
Algumas opções para resolver o problema em sua situação, onde os bloqueios de página estão desabilitados para o índice, são:
MAXDOP 1