Artigo Clube Delphi Edição 29 - Índices no InterBase

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo da Revista Clube Delphi Edição 29.

Esse artigo faz parte da revista Clube Delphi edição 29. Clique aqui para ler todos os artigos desta edição

 

 

Índices no InterBase

 

Na maioria dos bancos de dados, os índices representam papel importante na otimização de queries e na recuperação de informações seguindo alguma ordem específica. Nos bancos de dados relacionais, os otimizadores de queries procuram sempre utilizar os índices para agilizar a recuperação de informação quando as queries contêm joins ou uma cláusula order by.

Basicamente, os índices representam uma forma de se ordenar determinada informação, de maneira crescente ou decrescente, facilitando e agilizando a busca dessa informação nas consultas e relacionamentos. Os índices também podem ser usados para forçar uma regra de exclusividade, onde determinada chave deve ser única. As chaves dos índices podem ser compostas de um único campo, ou  de vários campos de uma mesma tabela.

Um índice nada mais é do que uma estrutura ordenada por sua chave, contendo ponteiros que apontam para o endereço físico onde o registro relacionado àquela chave está armazenado. Sendo assim, quando fazemos uma busca por determinado valor em um campo que possui um índice definido, o InterBase procura no índice pelo valor pesquisado. Se encontrá-lo, ele já tem a localização exata do registro relacionado no banco de dados , sem que tenha que percorrer todos os registros até encontrar o registro em questão.

Exemplo base

Usaremos no exemplo uma tabela típica de produtos relacionados a notas fiscais. A tabela usada nesse exemplo possui 87 mil linhas e tem a seguinte estrutura:

CREATE TABLE TPRODNOTA (

  CODPROD VARCHAR(11) NOT NULL,

  SIT_TRIB VARCHAR(3) NOT NULL,

  UNIDADE VARCHAR(3) NOT NULL,

  QTDE INTEGER NOT NULL,

  PREC_UNIT NUMERIC(15,4),

  "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?