Filtragem de Dados Lenta com Set Filter

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

UKclipper
Usuário Nível 1
Usuário Nível 1
Mensagens: 27
Registrado em: 13 Fev 2007 16:29

Filtragem de Dados Lenta com Set Filter

Mensagem por UKclipper »

Olá, pessoal!

Tenho uma base de dados com cerca de 694347 registros e o SET FILTER já está lento demais para a filtragem dos dados. Existe alguma forma mais rápida de filtrar dados no Clipper?
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Sim existem várias formas, você pode criar um Indice com filtro por exemplo :

INDEX ON CODIGO FOR ESTOQUE>100 TO ARQIND
INDEX ON NOME FOR TIPO="MP" TO ARQIND2

Porém...

O ideal seria você usar o driver NSX da SIX3 pois ele te dá muitos recursos de filtragem, nessa área é imbátivel, eu não uso por isso não vou passar maiores detalhes, mas basta fazer uma busca que você irá encontrar muito material. Busque por SIX ou NSX.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
guidelli
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 09 Mar 2007 18:09
Localização: Araraquara-SP
Contato:

Temporários...

Mensagem por guidelli »

Na empresa que trabalho, havia uma rotina de relatórios que era muuuuito lerda, só que nenhum cliente reclamava pelo fato de estarem acostumados e conformados.
Corria o arquivo todo de contas a receber, pra pegar uma faixa só de contas. Claro que não deve ser o teu caso, mas na minha idéia, pode ser resolvido.
Criei um arquivo temporário através de uma rotina que simplifica isso.. só passo o "escopo" e a rotina me retorna o nome do temporário.

Aliás... essa questão de escopo tem sido discutida por aqui ultimamente, não? Pelo que li, no Clipper5.3 tem o comando "SET SCOPE" que quebra um galhão!!!

Abraços. :xau
Sem saber que era impossível, foi lá e o fez.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

QUAL RDD VC USA ???
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Opções que uso:

Crie um arquivo de índice para atender ao filtro.
ou
Crie um índice com o filtro.
ou
Use o SET SCOPE do 5.3 para trabalhar com o filtro.

ou então
Se o índice depende de várias opções e seu usuário entra com essas opções on-line, estude se vale a pena um índice temporário ou gerar um arquivo temporário.

Boa sorte.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

Mensagem por Maurício Elias »

Colega:

Tire o Set Filter.
Use um índice apropriado para a filtragem principal, o resto vc elimina no If - Skip - Loop

Abraços.

Maurício
Responder