Fórum Indices no Firebird #49672
02/03/2005
0
Será que alguem pode me dar uma luz de como trabalhar com indices e obter um melhor resultado na hora dos select´s?
Um abração...,
Eniorm
Curtir tópico
+ 0Posts
02/03/2005
Fsflorencio
De qualquer forma não é legal sair criando índices pra todos os campos, pois eles ocupam espaço e o que deve ser feito é um estudo de quais índices seriam realmente necessários.
Acesse o site www.firebase.com.br e veja na página dos artigos algumas matérias sobre índices como:
-Entendendo as estruturas BTree
-Índices, Performance e Estatísticas no IB
-PLANos de optimização do Firebird/Interbase
Boa sorte.
Gostei + 0
02/03/2005
Nandolh
O índice somente é necessário quando vc o utiliza na clausula Where.
Ex.: TABELA1(cod,nome)
SELECT * FROM TABELA1 WHERE NOME LIKE ´JOAO¬´
Criar um índice para nome é viável.
Supondo o seguinte:
SELECT MAX(COD) FROM TABELA1
Se TABELA1 tiver muitos registros então crie um índice decrescente pada COD. Assim o MAX será quase que instantâneo...
O mesmo acontece com MIN, só que desta vez vc cria um crescente.
Para vc observar a diferença seria muito interessante que tivesse alguma ferramenta para observar o número de leituras que o seu select gera, PLAN ANALYZER. Um ótimo exemplo é o IBEXPERT(pena que só pagando vc tem esta opção).
[]´s
Gostei + 0
02/03/2005
Eniorm
um grande abraço,
Gostei + 0
02/03/2005
Gandalf.nho
Gostei + 0
02/03/2005
Eniorm
Vc poderia me dar um exemplo, por favor, supondo a tabela
codigo integer not null primary key
nome varchar(100),
sobrenome varchar(100)
tento como indices:
idx_nome
idx_sobrenome
como montaria o Select ?
um abração galer@
Gostei + 0
02/03/2005
Gandalf.nho
SELECT * FROM tabela ORDER BY nome, sobrenome
Gostei + 0
02/03/2005
Eniorm
Agradeço a todos pela ajuda,
um grande abraço
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)