SóProvas


ID
17983
Banca
CESGRANRIO
Órgão
BNDES
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

Para um melhor desempenho, que valor de FILL FACTOR deve ser utilizado em uma tabela somente para leitura (read-only) no SQL Server 2005?

Alternativas
Comentários
  • Imagine uma prateleira com 100 livros organizados, por exemplo, em ordem alfabética. Se você colar os livros um no outro, e tiver que adicionar algum novo livro, terá que empurrar os demais livros da prateleira para liberar espaço para este novo livro. Agora, se você deixar um espaço entre os livros, você não terá que fazer tanto esforço para incluir um novo.

    Os índices das tabelas, no SQL Server, funciona da mesma forma, e quem define o percentual % livre por página[1] é a opção FILL FACTOR.


    Quando você cria índices para suas tabelas, o SQL Server organiza os dados dentro de páginas de índices, desta forma qualquer alteração nos dados de um atributo (campo) pertencente a um índice, exige que o SQL Server reorganize a página de índice, e isto leva tempo. A opção FILL FACTOR define quanto de uma página de dados (em %) deve ser preenchida e quanto deve ser mantida em branco, que será reservada para uso futuro.


    Após a criação do índice o espaço em branco deixado através da opção FILL FACTOR será utilizado para alterações, inclusões, etc.


    A má notícia é que o SQL Server não refaz o índice, o que vai exigir que você, depois de um tempo, recrie para liberar novamente o espaço livre.

    Não existe regra para a definição do FILL FACTOR, porém, o valor de 100% é utilizado quando o índice é destinado a uma tabela apenas para consulta. Você pode calcular um percentual com base nas tuplas (registros) que a tabela já tem, com a estimativa de quantas tuplas serão adicionadas ou alteradas por dia, e o tempo que você deseja ter para fazer nova manutenção na base de dados. Se o FILL FACTOR for muito baixo, o SQL Server deverá percorrer muitas páginas para localizar a informação tornando a consulta, tecnicamente, um pouco lenta.

    [1] Página é a unidade fundamental/básica de armazenamento de dados do SQL Server. No SQL Server 2000 o tamanho de uma página é 8 Kb. A quantidade utilizada pelo índice irá depender do tipo do dado.