Ir para o conteúdo
edsudani

SQL Server

Mensagens Recomendadas

edsudani    12
edsudani

Boa noite a todos!

Sou técnico em Eletrônica a 35 anos e recentemente formado em informática, portanto tenho muito a aprender. Sou autodidata e escolhi para meu desenvolvimento técnico estudar SQL Server 2005.

Estou estudando "Conceito e Criação de Índices" no capítulo 4. O autor do livro SQL SERVER 2005 CURSO COMPLETO afirma que FILL FACTOR "define um porcentual a ser deixado em branco,sem registros gravados, em cada página de dados". Seu objetivo "é agilizar as operações de inserção, alteração e inclusão de dados, evitando movimentações de registros entre páginas e, em casos extremos, desdobramentos de páginas."

Com base nessa informação, concuí que o Fill Factor define o espaço em branco ou sem registro na página de dados. Logo, um Fill Factor de 100% significa ZERO BYTE Gravado.

Mais adiante o autor afirma Que um Fill Factor de 100% permite a ocupação total das páginas. Isto significa que as páginas estarão totalmente gravadas (ocupadas)-- sem espaço em branco.

Isto parece contraditório e portanto muito confuso.

Poderíam por gentileza ajudr-me a compreender este assunto, (Fill Factor), pois o autor reconhece que é uma "opção pouco utilizada pelo não conhecimento da aplicabilidade desta opção." ?

Se minhas expressões causarem embaraços, perdoem-me, pois meus português é o do Brasil.

Sem mais: José Edison Sudani

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    76
M6

O Fill Factor define o tamanho do espaço que fica reservado mas que é deixado livre, isto é, sem informação gravada.

O objectivo é manter a informação num único ficheiro, o mais próxima possível ao nível das páginas no disco rígido, para que o acesso a essa informação se faça o mais depressa possível.

Esse espaço reservado mas livre é usado para futuras expansões da base de dados.

Quando há actualização de informação, esse espaço e/pode ser usado para guardar essa actualização junto com a informação, mantendo assim a informação o mais próxima possível.

Sem essa funcionalidade, o que acontece é que a informação vai ficar fragmentada pelo disco rígido e o seu acesso vai ser mais lento dado que é necessário ler os vários bocados.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
edsudani    12
edsudani

Muito bem M6. O autor fala de "movimentações de registros entre páginas e, em casos mais extremos, desdobramentos de páginas." Como você explicou, haverá fragmentação de dados.

O que causa confusão é a seguinte afirmação do autor: "O valor do parâmetro fill factor é um valor percentual, o qual varia de 0 a 100%. Um valor de 100% significa que as páginas de dados serão ocupadas completamente, o que implica menor espaço para armazenamento e também menos operações de I/O de disco para as consultas..."

Observe o texto sublinhado.

Esta afirmação parece contrária à principal vantagem de estabelecer um Fill Factor ou seja, reservar um espaço em branco para atualizações.

É correto que o valor default (padrão) do Fill Factor no SQL Server2005 é=0% e ainda assim reserva espaço em branco para otimizações do índice?

Como eu poderia determinar um valor ótimo para o Fill Factor?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    76
M6

Passo a explicar:

O valor de 100 quer mesmo dizer que as páginas serão totalmente usadas. Este valor deverá ser usado apenas quando não há/haverá alterações aos dados, por exemplo em tabelas cuja informação será acedida apenas para leitura.

Um valor mais baixo, isto é < 100, deixa algum espaço vazio nas páginas, o que reduz a necessidade de divisão das páginas conforme os índices crescem, mas tal requer mais espaço para armazenamento. Estes valores devem ser usados quando existem tabelas onde existe  alteração de dados.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    76
M6

Sim. Nessa situação a fragamentação vai ocorrer.

Quanto a encontrar o valor certo, bem isso é quase uma arte, dado que não há uma formula "mágica" para definir o fill factor.

O fill factor implica um trade-off de performance entre leitura e escrita, de forma simples: fill factor elevado = leituras rápidas, fill factor baixo = escritas rápidas.

É muito comum usarem-se factores de 70% (muitas escritas) até 95% (muitas leituras).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
edsudani    12
edsudani

Muito bem. Se eu definir um valor de 50%, teria uma condição ótima para leitura e escrita?

Excetuando-se uma tabela só para leitura (o que imagino difícil), o valor acima poderia ser generalizado para qualquer tabela (apenas por motivos práticos)? Ou devo evitar este proceder?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
edsudani    12
edsudani

M6, considere sanada minha dúvida com respeito ao Fill Factor.

Agradeço a sua prestimosa colaboração.

Digo-lhe que o autor  limitou-se a afirmar (por

eMail )que o texto do livro estava correto, nada mais.

Se houver mais dúvidas, gostaria de postá-las aqui. Se possível.

José Edison Sudani

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    76
M6

José, todas as dúvidas são bem vindas é esse o propósito deste fórum. :thumbsup:

Há por aqui muita gente que "sabe umas coisas" e pode ajudar.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade