NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 04 : 17
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO
Autor: Júlio Battisti
Lição 065 - Capítulo 04 - UM FATOR IMPORTANTE: FILLFACTOR OPTION

Esta opção é igualmente importante e pouco utilizada. Talvez seja pouco utilizada pelo não conhecimento da aplicabilidade desta opção. Vamos explicá-la de uma maneira simples.

Ao criarmos um Clustered Index, os dados da tabela são armazenados em páginas de dados de acordo com a ordem dos valores da coluna indexada. Ao inserirmos novos registros na tabela, estes precisam ser inseridos na ordem definida pelo campo que compõem o índice. Nestas situações pode acontecer de registros terem que ser deslocados para outras páginas para que o registro que está sendo inserido seja colocado na ordem correta. Este procedimento também acontece quando utilizamos Nonclustered Index, ao adicionarmos ou alterarmos os registros da tabela.

Ao criarmos um índice podemos especificar um valor para a opção FILL FACTOR (clique na opção Options, no painel da esquerda, da janela de criação do índice, quando usando o SQL Server Management Studio ou a cláusula FILLFACTOR = %, quando usando comandos T-SQL). Este valor define um percentual a ser deixado em branco, sem registros gravados, em cada página de dados. O objetivo deste espaço em branco é agilizar as operações de inserção, alteração e exclusão de dados, evitando que tenham que ser feitas movimentações de registros entre páginas e, em casos mais extremos, desdobramento de páginas. Com isso obtém-se um melhor desempenho nestas operações.

Pode parecer um detalhe sem muita importância, mas imagine, por exemplo, um sistema de reserva de passagens aéreas de uma grande companhia. Milhares de terminais de atendimentos conectados ao Banco de Dados, com operações de inserção, alteração e exclusão sendo feitas a todo o instante. Nesta situações o ganho em performance é considerável. Mas, como tudo na vida, temos que considerar o outro lado da situação. Ao definirmos um FILL FACTOR elevado estaremos deixando um percentual de espaço em branco, disponível em cada página. Para sistemas que fazem basicamente consulta, um FILL FACTOR elevado será prejudicial, pois a consulta terá que acessar um número maior de páginas de dados para reunir a informação necessária. Maior número de páginas, mais operações de I/O de disco = pior desempenho.

Então em sistemas DSS (Decision Support Systems), onde não temos alterações nem inserções de dados, mas sim um grande volume do consultas aos dados, o ideal é um FILL FACTOR de 100%, ou seja, sem espaço nas páginas de dados.

Falaremos um pouco mais sobre os diferentes ambientes de trabalho (DSS – Decision Support System), OLTP e OLAP no Apêndice.

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 em menor espaço para armazenamento e também menos operações de I/O de disco para as consultas, conforme descrito anteriormente.

Na maioria das situações o valor padrão definido pelo próprio SQL Server 2005 já é satisfatório, mesmo para aplicações que tenham muitas operações de inserção e atualização.

O percentual de espaço livre é definido na criação do índice. À medida que novos registros vão sendo inseridos ou alterados, as páginas de dados vão sendo preenchidas e o percentual de espaço livre vai diminuindo. Caso você queira redefinir o percentual de espaço livre, basta recriar o índice com a definição do FILL FACTOR para o percentual desejado.

O valor default para o FILL FACTOR é 0%. Porém este valor não significa que as páginas de dados estão zero por cento preenchidas. Na prática este valor instrui o SQL Server a criar páginas de dados praticamente preenchidas, deixando apenas um pouco de espaço para otimizações do índice. Você pode alterar este valor padrão acessando as propriedades da instância do servidor SQL Server, através da guia Database Settings, conforme indicado na Figura 4.23:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 4.23 Valor default para o FILL FACTOR.

Para criar um índice com a opção FILL FACTOR, basta utilizar WITH FILLFACTOR = x %, conforme indicado no exemplo a seguir:

CREATE NONCLUSTERED INDEX  NomeIndex
ON Autores (nome)
WITH FILLFACTOR = 65

Fundamentos em: Comandos Adicionais Para Trabalhar com Índices:

Pré-Requisitos:

  • Noções básicas sobre o conceito de índices.
  • Saber utilizar a janela para execução de comandos T-SQL.

Metodologia:

  • Apresentação dos comandos T-SQL relacionados com índices.

Neste item veremos alguns comandos úteis para trabalhar com índices.

  • O comando sp_helpindex: Este comando retorna uma série de informações sobre os índices de uma tabela ou View.

A sintaxe para este comando é bastante simples.

exec sp_helpindex nome_da_tabela_ou_view

Por exemplo, o comando:

exec sp_helpindex Customers

Retorna o resultado indicado na Figura 4.24.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 4.24 Informações retornadas por sp_helpindex.

Uma coluna indexada em ordem descendente será listada com um sinal de menos após o nome.

  • O comando sp_spaceused: Este comando retorna informações sobre o espaço ocupado por uma tabela.

A sintaxe para este comando é bastante simples.

exec  sp_spaceused nome_da_tabela

Por exemplo, o comando:

exec sp_spaceused  Customers

retorna o resultado indicado na Figura 4.25.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 4.25 Informações retornadas por sp_spaceused.

Observe que uma das informações retornadas é o tamanho do índice.

  • O comando sp_help: Este comando retorna uma série de informações sobre uma determinada tabela, inclusive informações sobre os índices.

A sintaxe para este comando é bastante simples:

exec  sp_help nome_da_tabela

Por exemplo, o comando:

exec sp_help Customers

Retorna uma série de informações sobre a tabela Customers.

« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI