Página 1 de 1
CDX usando TAGs ou Näo
Enviado: 13 Mar 2008 11:44
por Luciano Bonfim
Quando migrei para DBFCDX para näo ter que alterar todos os meus programas eu deixei igual ao NTX sem usar TAG, ou seja:
Código: Selecionar todos
use arquivo
index on campo1 to i1
index on campo2 to i2
index on campo3 to i3
set index to i1,i2,i3
com isso é criado 1 arquivo CDX para cada índice, em vez de apenas 1 CDX com 3 índices dentro. isso facilitou minha vida pois nos meus programas eu continuo a referenciar o índice usando set order e näo precisei mexer em nada.
Código: Selecionar todos
select arquivo
set order to 2
seek ...
set order to 3
seek..
A minha pergunta é: o que irei ganhar se modificar meus fontes para aceitar apenas um arquivo de índice para cada DBF com N TAGs dentro dele? ganho em velocidade? ganho em memória?
Em tempo: meu sistema hoje tem 95 DBFs e 163 CDXs
utilizo xharbour 1.0.0 + GTWVW + HWGUI
Muito Obrigado
Enviado: 13 Mar 2008 12:47
por alaminojunior
ganho em velocidade? ganho em memória?
Moral da história: Vc está sentado numa Ferrari, andando só a 80 KM/h.
Acredito que um ligeiro ganho em memória, além é claro de economizar nos gerenciadores de arquivo. Em vez de ter de gerenciar 163 indices, seu sistema passa a gerenciar apenas 95, ocasionando creio eu, tb um ligeiro aumento na performance.
A mudança no código não será muita se optar por usar as ordens, dentro dos indices. Troque os
por
e nunca se esqueça de deletar os .CDX antes de reindexar, senão ele vai crescendo,
crescendo,
crescendo ... e bagunçando tudo.
Enviado: 13 Mar 2008 14:39
por gvc
O set order funciona.
Eu particularmente uso dbsetorder.
Seu ganho será de:
- velocidade de acesso / atualização dos indices. o cdx é mais rápido.
- menor uso de memoria do micro. vc abre menos arquivos.
- O CDX é mais estável.
Com mais espaço de memória, seu sistema trabalha "melhor".
Enviado: 13 Mar 2008 17:48
por Luciano Bonfim
funcionou que é uma maravilha, agora só tenho um CDX para cada DBF e nem precisei mexernos fontes, conforme disse o GVC o set order continua funcionando...
Muito Obrigado
Enviado: 16 Mar 2008 10:42
por alaminojunior
o set order continua funcionando...
Particularmente prefiro as funções, são mais claras. Além do que, se precisar criar um segundo arquivo de índice, como vai ficar ?
Enviado: 16 Mar 2008 15:15
por ederxc
alaminojunior escreveu:o set order continua funcionando...
Particularmente prefiro as funções, são mais claras. Além do que, se precisar criar um segundo arquivo de índice, como vai ficar ?
Uia , vai ficar na mesma , cria o arquivo de indice indexa e chama ele na ordem em que ele estiver , uai uai uai , não entendi esssa não , mexicano,mulçumano, espanhol !
Enviado: 16 Mar 2008 19:01
por sygecom
Eu sempre uso DBSETORDER() e funciona normal no DBFCDX, alias o desempenho e praticidade com DBFCDX não tem comentarios, alem de poder usar as novas funções da SIX em DBFCDX em xharbour.