Indices no Firebird

Firebird

10/03/2004

Boa tarde, como seria uma query criar um indice e recuperar dados através desse indice de um campo varchar ?


Sid

Sid

Curtidas 0

Respostas

Rodolpho123

Rodolpho123

10/03/2004

Desculpe amigo, mas não consegui compreender a sua pergunta. Vc quer saber como funciona ou como criar esses índices?
Aguardo a sua resposta para tentar ajudá-lo.
Abraços........!


GOSTEI 0
Afarias

Afarias

10/03/2004

para criar um índice vc usa o comando CREATE INDEX

ex::

create index nome_do_indice on nome_tabela (nome_campo);


para usá-lo vc não faz nada!! quando vc define uma condição em um select (WHERE) o IB seleciona automaticamente os índices q devem ser usados e pronto...

...bom, vc poderia usar a cláusula PLAN para definir os índices a serem usados, mas ai é outra história e vc não vai precisar!


T+


GOSTEI 0
Sid

Sid

10/03/2004

Desculpe amigo, mas não consegui compreender a sua pergunta. Vc quer saber como funciona ou como criar esses índices? Aguardo a sua resposta para tentar ajudá-lo. Abraços........!


:roll:
Como funcionam, pq o que quero fazer é tentar criar uma tabela que armazene ou aponte para arquivos que estão no HD, ou seja, depois disso tentar através de indice, recuperar textos referente àquela palavra como se fosse uma espécie de select para recuperar textos ligados a uma palavra chave. Não sei se deu para entender ?!?! Obrigado !


GOSTEI 0
Rodolpho123

Rodolpho123

10/03/2004

Olá amigo,
Bem, vou tentar te explicar como funciona os índices do FB:

BD´s que não usam o sistema B_Tree(árvore binária) como Access, Paradox,Dbase, etc... usam os índices para melhorar a sua performance. Eles executam 2 tipos de acessos físicos para localizar os dados: 1º percorre o índice até achar o registro desejado e depois percorre a tabela até achar o registro. Já nos BD´s que utilizam o sistema de B-Trees, eles executam (na maioria das vezes) mais de 2 acessos fisicos no banco. Apesar do número de acessos ser maior que os convencionais, eles se tornam muito mais rápidos que o outro sistema, porque, se numa tabela access, constam 1.000 registros e vc quer o de número 40, o ponteiro vai percorrer todos os registros até lhe retornar o desejado. já na B-Tree, ele vai ´cortando caminho´. Exemplo: se na tabela FB constar 1.000 e vc quiser encotrar o de número 40, evai funcionár como uma árvore, cheia de galhos e folhas, então é dividido (um exemplo) como assim: 1 a 99,100 a 199, 200 a 299.......900 a 1.000. Então, ele se faz a pergunta: Para que eu tenho que ir nos outros registros se meu usuário só quer o de nº 40? então ele pega este ´atalho´ do 1 a 99, e assim ele vai se dividindo até encontrar o registros desejado. taí a explicação de perque ele executa mais de dois acessos físicos no BD, pois cada divisão são conhecida como ´nós´. É + ou - assim que funciona os Índices do FB.
Então, se vc criar relacionamentos usandos esses índices vc terá mais sucesso do que usar os outros.
Uma nota: Esses tipos de sistemas B-Trees tem um bom desempenho especificamente para BD muito grande. Se não for o seu caso, vc pode usar um BD que use índices não-BTree.

Espero tê-lo ajudado.
Abraços.......!


GOSTEI 0
POSTAR