Index – O que são? Pra que serve? Como sobrevivem?

Olá pessoal, hoje veremos sobre estrutura de índices, como funcionam e pra que servem.

Index, ou em português Índice, é um recurso que o SQL Server disponibiliza afim de ordenar dados em uma determinada sequência, afim de retornar os resultados de maneira mais eficiente.

Índices são encontrados comumente em livros, artigos, listas e o seu grande objetivo é indicar onde está (sua localização) o assunto buscado, isso se aplica ao banco de dados também quando levamos em conta a massa de dados buscada, clientes, produtos, etc.

Lembrando que em caso de dúvida, problemas, suporte, consultoria acesse:  SRTech Soluções

ficheiros

No SQL Server temos dois tipos de índices: Clusterizado x Não-Clusterizados.

  • Índices clusterizados, podemos ter apenas 1 por tabela e o seu ‘porque’ é simples: Ele define fisicamente onde a informação será salva. Geralmente os índices clusterizados são as PK’s da tabela e tem retorno mais eficiente se comparado com um índice não-clusterizado.
  • Índices Não-Clusterizados, podemos ter inúmeros por tabela, são estruturas lógicas que armazenam os ponteiros da localização do dado desejado, podendo inclusive apontar para o índice clusterizado.

Devemos observar alguns itens sobre a criação de índices, tais como:

      1. Sequência das colunas, ordenar da mais seletiva pra menos;
      2. Evitar índices que possuem semelhança de colunas;
      3. Criar índices em colunas que possuam maior nível de seletividade;

Podemos ver abaixo, exemplo de criação de índices.

Exemplo Índice Clusterizado:

  • CREATE   CLUSTERED INDEX     IX_TabelaTeste_ColCPF   ON                      dbo.TabelaTeste (CPF);

Exemplo Índice Não-Clusterizado

  • CREATE   NONCLUSTERED INDEX    IX_TabelaTeste_ColNome    ON dbo.TabelaTeste (Nome);

Em um banco de dados com índices, é normal haver grandes níveis de fragmentação. Isso devido aos insert’s, delete’s realizado pelos sistemas ali presentes.

Assim precisamos mantê-los com o mínimo de fragmentação possível. Neste assunto temos duas opções, que seria refaze-los ou reorganize-los.

  • REBUILD, que seria a opção de refazer o índice, é índicado quando o mesmo possuir mais de 30% de fragmentação.
    • ALTER INDEX IX_TabelaTeste_ColCPF ON dbo.TabelaTeste  REBUILD;
  • REORGANIZE, que seria a opção de reoganizar o índice, é indicado quando o mesmo possuir menos de 30% de fragmentação.
    • ALTER INDEX IX_TabelaTeste_ColCPF ON dbo.TabelaTeste  REORGANIZE ;

Isso aí pessoal, agora vocês já tem uma boa base sobre índices no SQL Server e podem começar a utilizar mais essa poderosa ferramenta.

Em breve, teremos mais post’s!!

Abraço,

Henrique Ribeiro

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s