Indexar arquivo dbf com 2 milhões de registros
Moderador: Moderadores
Indexar arquivo dbf com 2 milhões de registros
Olá, gostaria de saber se alguém já passou por esta triste experiência: tentar indexar um arquivo .cdx com 4 tags de um dbf com 2 milhões de registros e trombar o famigerado "General Protect Fault".
Caso afirmativo, qual o rumo foi tomado ?
Preciso colocar esse arquivo pra funcionar de qualquer maneira...
Grato pelas eventuais ajudas.....
Caso afirmativo, qual o rumo foi tomado ?
Preciso colocar esse arquivo pra funcionar de qualquer maneira...
Grato pelas eventuais ajudas.....
Fabiano
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
- momente
- Usuário Nível 3

- Mensagens: 496
- Registrado em: 03 Mar 2005 11:53
- Localização: São Carlos-SP
- Contato:
Caro Amigo Fabiano,
Você ja testou com o blinker 7.0?
Você ja testou com o blinker 7.0?
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Gostaria de saber se existe ainda mais alguma solução para conseguir indexar o arquivo, visto que o arquivo linkeditado com o blinker não funcionou !!!
Abaixo colo o conteúdo do meu programa idxall.lnk para conferência de um eventual erro.....
BLINKER INCREMENTAL OFF
BLINKER CLIPPER PAGE OFF
BLINKER link XMS ON
BLINKER EXECUTABLE EXTENDED 2048
BLINKER HOST MESSAGE ON
BLINKER HOST DPMI ON
BLINKER HOST VCPI ON
BLINKER HOST XMS ON
BLINKER PROCEDURE DEPTH 70
BLINKER EXECUTABLE COMPRESS 1
FILE idxall
LIB BLXCLP52, BLXRATEX, DBFCDX
Grato
Abaixo colo o conteúdo do meu programa idxall.lnk para conferência de um eventual erro.....
BLINKER INCREMENTAL OFF
BLINKER CLIPPER PAGE OFF
BLINKER link XMS ON
BLINKER EXECUTABLE EXTENDED 2048
BLINKER HOST MESSAGE ON
BLINKER HOST DPMI ON
BLINKER HOST VCPI ON
BLINKER HOST XMS ON
BLINKER PROCEDURE DEPTH 70
BLINKER EXECUTABLE COMPRESS 1
FILE idxall
LIB BLXCLP52, BLXRATEX, DBFCDX
Grato
Fabiano
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Boa Noite.
Uma pergunta, vc esta deletando o cdx antes de indexar e "packeando" ?
Tente fazer isso tb...
1. renomeie o dbf...
2. crie um outro banco com a msm estrutura...
3. crie os indices nesse dbf vazio...
4. e execute um append from...do dbf q vc renomeou...
5. depois renomeie o dbf criado já com o indice ok para o nome correto...
Uma pergunta, vc esta deletando o cdx antes de indexar e "packeando" ?
Tente fazer isso tb...
1. renomeie o dbf...
2. crie um outro banco com a msm estrutura...
3. crie os indices nesse dbf vazio...
4. e execute um append from...do dbf q vc renomeou...
5. depois renomeie o dbf criado já com o indice ok para o nome correto...
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Olá,
Acredito que seja uma boa alternativa esta do Dudu, mas o append from tem q ser dado com os indices ja abertos, senão de qualquer modo o indice ficará desatualizado, e necessitará de um reindex (e com reindex o risco de corromper tbm é grande) ou então na primeira alteração de um campo chave o indice sera criado por inteiro, ja q estaria vazio...
Agora, falando sério mesmo, 2 milhões é muito registro prum pobre DBF... heheh. Talvez esteja na hora de tentar um banco de dados relacional, eu recomendaria.
Acredito que seja uma boa alternativa esta do Dudu, mas o append from tem q ser dado com os indices ja abertos, senão de qualquer modo o indice ficará desatualizado, e necessitará de um reindex (e com reindex o risco de corromper tbm é grande) ou então na primeira alteração de um campo chave o indice sera criado por inteiro, ja q estaria vazio...
Agora, falando sério mesmo, 2 milhões é muito registro prum pobre DBF... heheh. Talvez esteja na hora de tentar um banco de dados relacional, eu recomendaria.
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Meu receio é exatamente esse: arquivo DBF muito grande, mas já ouvi falar de casos com DBF de até 3 milhões e sem nenhum problema de corrupção de índices.
Por isso ainda estou pensando em tentar uma solução para por esse arquivo pra rodar....
Existe um corrente de pensamento que acha que o problema está no linkeditor do programa responsável pela indexação do arquivo e outra que acha q o arquivo está grande mesmo !
O que também pude constatar é que se eu diminuir o tamnho do meu índice, ou seja, o tamanho dos campos do meu DBF, o programa tem uma "sobrevida" e consegue indexar o arquivo....
Por isso ainda peço, qualquer ajuda sempre é válida.... eu não conheço o xHarbour e gostaria saber mais detalhes sobre o mesmo !
Já tentei o Blinker, mas a diferença é que esse linkeditor cria a aplicação, mas simplesmente "trava" o processo de indexação !
Caso haja interesse posso passar o programa que eu criei para indexar o arquivo e assim compartilhar com vcs esse desafio...
Só pra refrescar a memória: meu DBF tem quase 2 milhões de registros e meu indice .CDX possui 4 tags.
Grato mais uma vez !
Por isso ainda estou pensando em tentar uma solução para por esse arquivo pra rodar....
Existe um corrente de pensamento que acha que o problema está no linkeditor do programa responsável pela indexação do arquivo e outra que acha q o arquivo está grande mesmo !
O que também pude constatar é que se eu diminuir o tamnho do meu índice, ou seja, o tamanho dos campos do meu DBF, o programa tem uma "sobrevida" e consegue indexar o arquivo....
Por isso ainda peço, qualquer ajuda sempre é válida.... eu não conheço o xHarbour e gostaria saber mais detalhes sobre o mesmo !
Já tentei o Blinker, mas a diferença é que esse linkeditor cria a aplicação, mas simplesmente "trava" o processo de indexação !
Caso haja interesse posso passar o programa que eu criei para indexar o arquivo e assim compartilhar com vcs esse desafio...
Só pra refrescar a memória: meu DBF tem quase 2 milhões de registros e meu indice .CDX possui 4 tags.
Grato mais uma vez !
Fabiano
- momente
- Usuário Nível 3

- Mensagens: 496
- Registrado em: 03 Mar 2005 11:53
- Localização: São Carlos-SP
- Contato:
Caros amigos,
Aproveitando aí o problema do amigo Fabiano, no caso de arquivos de indices .CDX, qual a diferença entre usar tags e/ou nomes para cada indice.
Ainda fico na dúvida sobre isso!
Valeu amigos!

Aproveitando aí o problema do amigo Fabiano, no caso de arquivos de indices .CDX, qual a diferença entre usar tags e/ou nomes para cada indice.
Ainda fico na dúvida sobre isso!
Valeu amigos!
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
é assim tags sao sub-indices em um mesmo .cdx no caso,
eu mesmo uso até 40 tags em dbf com 10 milhoes de registros e a solução q sempre encontro quando passo por isso é resolver tudo, no caso hd, fragmentacao , corrupcao, desde os 2 milhoes de registros aprendi a criar um dbf novo e dar um append from arqantigo next 500.000 e faco um loop pra cada meio milhao de registros, assim da tempo e hd gravar o swap file pra depois gravar definitivamente no dbf
da pra ver isso direitinho acontendo quando indexo diretamente no servidor e fico espiando aqueles arquivos tipo ADSAAASA serem criados
eu mesmo uso até 40 tags em dbf com 10 milhoes de registros e a solução q sempre encontro quando passo por isso é resolver tudo, no caso hd, fragmentacao , corrupcao, desde os 2 milhoes de registros aprendi a criar um dbf novo e dar um append from arqantigo next 500.000 e faco um loop pra cada meio milhao de registros, assim da tempo e hd gravar o swap file pra depois gravar definitivamente no dbf
da pra ver isso direitinho acontendo quando indexo diretamente no servidor e fico espiando aqueles arquivos tipo ADSAAASA serem criados
Bom gente, apareci aqui pra agradecer a preocupação de todos na solução deste episódio e também para deixar claro que consegui resolver a situação graças à dica do nosso moderador Dudu, ou seja: arquivo e índices zerados e com o índice aberto, um append from da tabela atual.
A única desvantagem nisso tudo é o tempo de execução da tarefa, mas a compensação é que a tabela está estável e dessa maneira, chega a suportar, com folga, até 7.500.000 de registros ( só não fiz testes com mais registros porque me faltou tempo, mas creio que não encontraria dificuldades em fazê-lo ! )
Mais uma vez, obrigado !
Até a próxima !
A única desvantagem nisso tudo é o tempo de execução da tarefa, mas a compensação é que a tabela está estável e dessa maneira, chega a suportar, com folga, até 7.500.000 de registros ( só não fiz testes com mais registros porque me faltou tempo, mas creio que não encontraria dificuldades em fazê-lo ! )
Mais uma vez, obrigado !
Até a próxima !
Fabiano

