Estou tendo problemas para encontrar um recurso definitivo sobre isso em qualquer lugar, por isso espero que um guru possa me dar uma resposta aqui.
Eu tenho uma tabela muito grande na qual tivemos que adicionar uma coluna. O índice clusterizado é bastante fragmentado e eu quero fazer um ALTER INDEX REBUILD
para limpá-lo.
Também normalmente faço um ALTER TABLE REBUILD
quando altero as colunas, pois isso limpa qualquer ponteiro ou divisão dessa operação.
Preciso fazer as duas coisas, pois estamos falando de um índice clusterizado, que é essencialmente a tabela?
Minha suspeita é que o ALTER INDEX REBUILD
cluster não atualizará tudo o que ALTER TABLE
for necessário, mas também tenho medo de que ALTER TABLE
não limpe a fragmentação do índice.
Respostas:
Se você reconstruir o índice em cluster, não haverá necessidade de reconstruir a tabela. Se a tabela era uma pilha (não tinha um índice em cluster), convém reconstruí-la.
fonte
ALTER TABLE REBUILD
pois isso corrigirá ponteiros não corrigidos na reconstrução do índice. Não é mais esse o caso?Reconstruir descarta e recria o índice. Quando você cria um índice em cluster, ele reordena as linhas de uma tabela , além de criar o CIX (uma tabela sem o CIX é um heap).
fonte