Fórum Dúvida de Índice FB #54075
05/12/2005
0
Venho estudando o FB a tempos e estou num grande projeto com ele e estou totalmente satisfeito (usando Triggers, Storeds Procedures, Views, Generator.. tudo que posso tirar dele!).
Em meus estudos lembor que li algo sobre indices, nao lembro onde, e dizia o seguinte:
Se temos uma tabela CLIENTE e temos o campo SEXO onde ele pode receber ´F´ ou ´M´. Digamos que no sistema tenha muito acesso a este campo então por lógica eu criaria um índice para agilizar as pesquisar. Porém li (queria lembrar onde!) que como este campo não tem muitos conteúdos diferentes se criar um índice a pesquisar seria mais lenta que sem índice. Isto é verdade?
Outra dúvida é quanto a índices compostos, digamos que tenho a tabela ITENS DE NOTA FISCAL onde ela tem os campos EMPRESA, PEDIDO e ITEM. O mais coerente seria criar um índice composto pelos 3 campos porém no documento dizia que eu poderia criar um índice para cada campo que funcionaria exatamente na mesma velocidade uma busca nesta tabela.
Fora isso digo que o FireBird é um banco de dados excelente que está superando muito minhas expectativas!
Abraços!
Romulo Oliveira
Macaé/RJ
Romulocpd
Curtir tópico
+ 0Posts
05/12/2005
Thomaz_prg
Já com relação ao segundo, creio eu que o melhor, seria um índice para cada campo, assim, se você tiver que utilizar uma pesquisa simples (com apenas 1 desses campos), o índice já irá existir... e apenas lembrando que se os laços são feitos usando PK´s, não precisa se preocupar em criar os índices...
Fica aí minha opinião.
Gostei + 0
05/12/2005
Romulocpd
Obrigado por sua opinião.
Então me aconselhe no segundo caso:
Por exemplo, vou ter consultas que deverão agrupar o Total de um Pedido de Compra se baseando nos campos Quantidade e Valor, a soma dos Dois.
Ex: SELECT SUM(QTD * VALOR) FROM ITENSPEDIDOCOMPRA WHERE ITE_PEDIDO = 1 AND ITE_EMPRESA = 1.
Neste caso, para totalizar o total do pedido, um índice correto e coerente seria 1 Indice para QTD e outro para VAlor, certo?
Só gostaria de entender porque em outros bancos de dados o ideal seria criar um índice composto pelos 2 campos e no FireBird ele você pode criar índices separados para cada campo.
Abraços!
Romulo Oliveira
Macaé/RJ
Gostei + 0
05/12/2005
Gandalf.nho
Gostei + 0
05/12/2005
Afarias
|seria 1 Indice para QTD e outro para VAlor, certo?
Errado. Vc tem q criar índices para os campos no WHERE, ou seja: ITE_PEDIDO e ITE_EMPRESA.
|Só gostaria de entender porque em outros bancos de dados o ideal seria
|criar um índice composto pelos 2 campos e no FireBird ...
Que bancos de dados por exemplo? No mais... cada SGBD tem um sistema prórprio de implementação de índices, sendo assim cada um tem suas particularidades, e é importante conhecê-las.
T+
Gostei + 0
06/12/2005
Romulocpd
Obrigado pela informação, acabei confundindo e achei que deveria criar estes índices. Na verdade nem vou criar os indices pois já são parte da Chave Primária então não há necessidade.
Vlw
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)