:?
Olá pessoal.
Algum de vocês conhece uma rotina, função ou alguma outra maneira de verificar se um determinado índice está ok ou corrompido.
Hoje eu tenho uma rotina que durante a madrugada reindexa todos os arquivos. Acontece que o tempo que leva para reindexar tudo está atrapalhando o restante do processamento.
Preciso de uma rotina que me permita determinar que índice precisa ser recriado e diminuir o tempo de processamento.
Um abraço a todos.
Verificar integridade do Índice
Moderador: Moderadores
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Uma solução migre seus indices para CDX ou NSX...
Vc gera um arquivo unico contendo todos seus indices...
Além de torna o processo de reindexação mais rápido...
Vc ganha mto performance durante processos de atualização de dados...
Depois realize uma busca no fórum sobre cdx ou nsx...
Normalmente tb qdo eu utilizava ntx, eu reorganizava direto no servidor ou localmente em um micro bem rápido depois subia os dados atualizados para o servidor...dbfs e ntx...
Vc gera um arquivo unico contendo todos seus indices...
Além de torna o processo de reindexação mais rápido...
Vc ganha mto performance durante processos de atualização de dados...
Depois realize uma busca no fórum sobre cdx ou nsx...
Normalmente tb qdo eu utilizava ntx, eu reorganizava direto no servidor ou localmente em um micro bem rápido depois subia os dados atualizados para o servidor...dbfs e ntx...
________________________________________________________________________________________________________
(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
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Infelizmente este meio não existe nem com .NTX, .CDX, .NSX, blablaX.
O indice que não foi atualizado no momento da manuteção do .DBf foi pro espaço.
Tente refazer sua rotina de indezação para trabalhar somente sobre os indices que não existirem.
Ou seja, houve um pau no arquivo de clientes, apague somente seus indices, rode sua rotina, ela verifica se falta o indice do arquivo e o cria novamente.
Se foce usar CDX terá melhoria na abertura do indice pois não terá erro de corrupção pela falta de abertura de um dos indices, pois todas as chaves estão dentro de um só arquivo, exemplo
No exemplo acima estarão abertos na memória pelo menos 3 .DBF e 45 .NTX.
No exemplo acima estarão abertos na memória pelo menos 3 .DBF e 3 .NTX.
Ou seja:
- com .NTX voce pode ter até 255 .DBF e 15 .NTX por .DBF
- com .CDX voce pode ter até 255 .DBF e 15 .CDX por .DBF
Calculando:
- com .NTX voce pode ter até 15 chaves por .DBF
- com .CDX voce pode ter até 15 chaves por .CDX(255 chaves por .DBF)
Notou a diferença.
Que me corrijam numéricamente os amigos do forum.
@braços :?)
Infelizmente este meio não existe nem com .NTX, .CDX, .NSX, blablaX.
O indice que não foi atualizado no momento da manuteção do .DBf foi pro espaço.
Tente refazer sua rotina de indezação para trabalhar somente sobre os indices que não existirem.
Ou seja, houve um pau no arquivo de clientes, apague somente seus indices, rode sua rotina, ela verifica se falta o indice do arquivo e o cria novamente.
Se foce usar CDX terá melhoria na abertura do indice pois não terá erro de corrupção pela falta de abertura de um dos indices, pois todas as chaves estão dentro de um só arquivo, exemplo
Código: Selecionar todos
use clientes index clien001,clien002,...,clien0015
use fornece index forne001,forne002,...,forne015
use estoque index estoq001,estoq002,...,estoq0015
Código: Selecionar todos
use clientes index clientes
use fornece index fornece
use estoque index estoque
Ou seja:
- com .NTX voce pode ter até 255 .DBF e 15 .NTX por .DBF
- com .CDX voce pode ter até 255 .DBF e 15 .CDX por .DBF
Calculando:
- com .NTX voce pode ter até 15 chaves por .DBF
- com .CDX voce pode ter até 15 chaves por .CDX(255 chaves por .DBF)
Notou a diferença.
Que me corrijam numéricamente os amigos do forum.
@braços :?)
Apenas para fazer constar: existe sim um meio de verificar se um arquivo de índice NTX está íntegro ou não. Acho que ainda devo ter nos cafundós do meu HD a rotina que faz essa checagem.rochinha escreveu:Infelizmente este meio não existe nem com .NTX, .CDX, .NSX, blablaX.
Entretanto, é muitíssimo melhor que o colega OP considere a troca para um sistema mais moderno que, além de ser muito mais rápido, é também mais seguro.
[]'s
Maligno
http://www.buzinello.com/prg
