Tenho poucas tabelas com índices altamente fragmentados (mais de 90% de fragmentação) e grandes o suficiente (dezenas de gigabytes) em tamanho. O objetivo de desfragmentá-los é reduzir o consumo de espaço pelas tabelas acima.
Gostaria de evitar a execução de operações REBUILD, pois consome muitos recursos. Também tentando evitar o log no log de transações e o crescimento do log, e grandes tamanhos de backup do log de transações como resultado.
É por isso que a operação REORGANIZE foi escolhida em vez de REBUILD, para lidar com alta fragmentação.
Em relação ao REORGANIZE, tenha as seguintes perguntas:
Se executar várias operações REORGANIZE em índices separados ao mesmo tempo (digamos 10+, em janelas/sessões SSMS separadas) - isso pode causar corrupção de dados ou outros problemas conhecidos?
As operações REORGANIZE são registradas no log de transações de alguma forma?
Que tipo de bloqueios são mantidos pela REORGANIZE ? Quais consultas podem sofrer com isso?
A única razão para a desfragmentação no meu caso é reduzir o consumo de espaço de armazenamento, e isso realmente ajuda (por exemplo, o índice era de 18 GB antes e depois se tornou 8 GB e assim por diante). Essa é uma saída mais fácil do que solicitar armazenamento adicional, no meu caso.
Não, não seria. Em relação a quaisquer outros problemas, o AFAIK, se o SQL Server for corrigido para o SP e o CU mais recentes, você deve estar praticamente seguro.
Sim, eles estão logados de fato logados em todos os modelos de recuperação. Citação de SQLskills.com
Citando novamente do blog de Paul Randals compartilhado acima
Observe que, como dito acima, a reorganização do índice é totalmente registrada e, portanto, os logs seriam gerados, mas como o mecanismo SQL funciona em uma página do banco de dados por vez, o crescimento do log não inchará extensivamente e estará sob controle.