O fator de preenchimento só entra em ação quando um índice é criado ou reconstruído. É a quantidade de consumo para o índice das páginas no nível da folha que são preenchidas durante essas operações. ( consulte a nota abaixo para obter mais esclarecimentos sobre os níveis de página afetados )
Quando existe um comando DML para dados ( INSERT
, UPDATE
, e / ou DELETE
), ele irá acontecer com os índices afectadas correspondentes. Em outras palavras, se você tiver uma página preenchida em 20% e inserir dados nessa página, ela conterá mais de 20% dos dados (digamos 35% apenas por exemplo). Faça outra inserção, agora a página está 64% preenchida. Recrie o índice e as páginas no nível da folha agora conterão relativamente a porcentagem de espaço que você especificar (ou implicitamente o valor padrão para o servidor).
( Observe que , quando você não especifica PAD_INDEX
ser ON
, o fator de preenchimento é aplicado apenas às páginas no nível da folha. Mas quando você define PAD_INDEX = ON
, o fator de preenchimento será levado em consideração nas páginas de índice intermediário. O padrão éOFF
)
O motivo para ajustar o fator de preenchimento (em vez de usar o 100/0 padrão) é para minimizar as divisões de página ao inserir ou atualizar dados. Mas lembre-se, nada é de graça. Quanto menor o fator de preenchimento, mais dados de espaço normalmente ocupariam. Se você mantiver um espaço de página livre de 80% para seus índices, eles consumirão uma quantidade relativamente maior de espaço em disco, o que pode levar a mais leituras.
Pelo que entendi, quando os dados são inseridos, haverá aproximadamente 20% dos dados nas páginas. Quando os dados são atualizados, no entanto, eles se expandem para mais de 20% do índice, até preenchê-lo e gerar uma divisão de página, certo?
Quando os dados são inseridos, eles serão inseridos nos índices apropriados na página apropriada. Isso poderia e muito provavelmente faria com que o consumo da página fosse maior que o fator de preenchimento.
Uma divisão de página ocorrerá quando novos dados forem adicionados a uma página de índice completa. O SQL Server dividirá a página e colocará aproximadamente metade dos dados da página inteira em uma nova página. Novamente, o fator de preenchimento não entra em jogo aqui.
Um motivo legítimo para diminuir o fator de preenchimento seria minimizar as divisões de página, minimizando a fragmentação da página de índice.