Se eu tiver um índice com fator de preenchimento padrão de 100% e as modificações resultarem em uma grande fragmentação interna (divisões de páginas, espaço livre etc.), de modo que muitas páginas fiquem cerca de 60% cheias em vez de 100%, seria uma reconstrução/reorganização de índice compacta os dados em menos páginas de dados, resultando em mais espaço disponível relatado no banco de dados?
Se o anterior for verdadeiro, faz sentido reorganizar os índices antes de executar uma operação de redução para maximizar o espaço ganho pela redução (seguida por outra reorganização após a redução para reduzir a fragmentação causada pela redução)?
Finalmente, o DBCC Shrinkfile compacta as páginas de dados da mesma forma que uma reconstrução ou apenas move as páginas de dados?
O objetivo da manutenção do índice é reduzir a fragmentação do índice e não economizar espaço. Mas em seu processo ele precisa utilizar o espaço disponível que é quase o dobro do tamanho do índice para fazer a reorganização real dos dados nele contidos. Portanto, efetivamente a manutenção do índice é um desperdício e consome mais espaço.
Também é um desperdício de operação e quase nunca é necessário. É pesado, causa contenção de recursos e quaisquer ganhos de desempenho percebidos com ele são, na verdade, provenientes de processos secundários relacionados que ocorrem (atualizações de estatísticas e limpeza de planos de consulta do cache) que podem ser executados individualmente e separadamente.
Grande não. A redução faz com que os índices se fragmentem novamente, desfazendo a maior parte do trabalho que você acabou de gastar na manutenção do índice. Eles são contra-intuitivos um para o outro.
Além disso, a redução é uma operação pesada que também pode causar contenção de recursos e raramente deve ser usada. Destina-se apenas a casos especiais e pontuais.
Aqui estão alguns recursos relacionados de especialistas:
Sim. Você está certo.
Geralmente não vale a pena os esforços.
Todas as operações: encolher e reorganizar são muito caras, então não faz sentido executá-las 'por precaução'.
Ele apenas move páginas de dados.
Do meu ponto de vista você está lutando por espaço (recurso mais barato para bancos de dados modernos) por CPU, memória e largura de banda de rede (os mais caros)