Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Índices – Uma Visão Interna – Parte I

Veja neste primeiro artigo sobre índices uma Visão Interna.

Para iniciar minha participação neste espaço, gostaria de escrever sobre um assunto que tenho extremo interesse e ao qual dedicarei uma série de seis artigos aqui iniciada, índices.

Introdução

Qualquer profissional da área de bancos de dados, relacionais ou não – afinal de contas orientação a objetos ainda não prevê nada novo que seja tão rápido em pesquisas como índices – tem uma verdadeira febre para busca de performance, e neste cenário os índices aparecem em quase todo o elenco, nos fornecendo diversas estratégias para a obtenção de velocidade em pesquisas de registros.

Sabemos que para um bom trabalho com bancos de dados não basta apenas espalhar entre vários blocos os registros que representam tuplas da relação ou objetos da extensão. Para termos convicção disto, basta nos indagar em como responderíamos até mesmo a uma consulta extremamente simples, como por exemplo SELECT * FROM CIDADES. Uma “viagem” bloco-a-bloco no sistema de armazenamento teria que ser feita e ainda teríamos que ter informações suficientes nos cabeçalhos de blocos para identificar em que ponto do bloco os registros começam e a que relação cada registro pertence.

A evolução disto surgiu com a técnica de reservar alguns blocos, ou até vários cilindros inteiros, para uma determinada relação. Todos os blocos nesses cilindros poderiam se destinar a conter registros que representam tuplas de nossa relação. No entanto, bastaríamos “enriquecer” um pouco mais nossa consulta para encontrarmos novos problemas. Por exemplo:

SELECT * FROM Cidades WHERE nome = ‘Belém’;

Nesta consulta estamos simplesmente tentando encontrar uma tupla fornecendo o valor de sua chave primária. Aqui, exigiríamos o exame de todos os blocos nos quais a tupla Cidades poderiam ser encontradas. Devido a problemas como estes, e sempre em busca de performance, muitas vezes criamos um ou mais índices em uma relação.

Definindo Índice

Segundo Jeffrey Ullman, que forneceu – na minha opinião – a mais completa definição de índices, “um índice é qualquer estrutura de dados que recebe como entrada uma propriedade de registros – em geral, o valor de um ou mais campos – e encontra os registros com essa propriedade “rapidamente”.

Trocando em miúdos, um índice é um meio que nos permite localizar um registro sem ter de examinar mais que uma pequena fração de todos os registros possíveis, sendo que o(s) campo(s) em cujos valores o índice se baseia forma(m) a chave de pesquisa.

23-05pic01.JPG 

Nos próximos artigos discutiremos ainda as várias estruturas diferentes que servem como índices, bem como métodos para planejar e implementar índices.

Um abraço,

Alexandre Magno

 





    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Autor
Alexandre Magno

Alexandre Magno, atua há mais de 10 anos com serviços ligados a bancos de dados relacionais. Trabalhou na Borland Brasil por mais de 03 anos onde atuou como como consultor e instrutor do banco de dados InterBase, acompanhando sua evolução desde a versão 4 até os dias de hoje, além de sempre estar li...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da SQL Magazine ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03