Por que o índice REBUILD não reduz a fragmentação do índice?


Respostas:


39

Se um índice for muito pequeno (acredito que tenha menos de 8 páginas), ele usará extensões mistas. Portanto, parecerá que ainda existe uma fragmentação restante, pois a extensão da caixa conterá páginas de vários índices.

Por esse motivo, e também pelo fato de que em um índice tão pequeno que a fragmentação geralmente é insignificante, você realmente só deve recriar índices com um determinado limite de página. É uma prática recomendada recriar índices fragmentados com no mínimo 1000 páginas .


34

Isso também pode acontecer com índices muito GRANDES.

Eu tinha alguns índices em uma tabela com cerca de 700m de linhas que não conseguiam desfragmentar abaixo de cerca de 30%. O problema não era espaço livre contíguo suficiente dentro do banco de dados para organizar o índice consecutivamente.

Para solucionar um índice muito grande que não desfragmentará, a solução BEST é pré-dimensionar um novo banco de dados e mover todos os seus objetos para esse banco de dados e recriar seus índices lá.


1

Eu luto com isso há algum tempo e, como o JNK, pensei que o problema era continuar com espaço livre e fragmentação física no disco. No entanto, o que você faz sobre isso em uma SAN SSD?

Descobri agora que pode ser uma boa ideia incluir apenas index_level = 0. É assim que é feito no roteiro de Ola Hallengren.

Outra melhoria é fazer

 REBUILD With (maxdop = 1)

Dessa forma, você garante a máxima melhoria.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.