Indices no Firebird
Boa tarde, como seria uma query criar um indice e recuperar dados através desse indice de um campo varchar ?
Sid
Curtidas 0
Respostas
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........!
Aguardo a sua resposta para tentar ajudá-lo.
Abraços........!
GOSTEI 0
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+
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
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
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.......!
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