Verificar integridade do Índice

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Joel
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 08 Jul 2004 09:34

Verificar integridade do Índice

Mensagem por Joel »

:?
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.
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

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...


________________________________________________________________________________________________________
(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




Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

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

Código: Selecionar todos

use clientes index clien001,clien002,...,clien0015
use fornece index forne001,forne002,...,forne015
use estoque index estoq001,estoq002,...,estoq0015
No exemplo acima estarão abertos na memória pelo menos 3 .DBF e 45 .NTX.

Código: Selecionar todos

use clientes index clientes
use fornece index fornece
use estoque index estoque
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 :?)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

rochinha escreveu:Infelizmente este meio não existe nem com .NTX, .CDX, .NSX, blablaX.
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.
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
Responder