Problema com velocidade leitura/gravação dados

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Problema com velocidade leitura/gravação dados

Mensagem por tonicm »

Tenho uma aplicação que passei do clipper para harbour e tenho algumas tabelas em .DBF e outras em MySQL.
A aplicação está a ser utilizada em rede no máximo por 6 postos.
O meu problema é que quando só está um posto a trabalhar, a aplicação até trabalha rápido, o problema é quando entram outros postos, aí fica bastante lenta.
Alguém sabe o que pode estar a causar esta lentidão?
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Problema com velocidade leitura/gravação dados

Mensagem por sygecom »

A parte que fica lenta é onde usa os DBF?

Está usando algum SET FILTER nessa rotina que fica lenta?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Problema com velocidade leitura/gravação dados

Mensagem por tonicm »

Sim é nos dbfs.
Eu utilizo muito a criação de ficheiros dbf temporários no disco local c:\Temp\ de cada posto, para obter dados mais precisos para listagens/visualizações.
Não uso o SET FILTER na aplicação pois sempre foi um processo que ficava demasiado lento.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Problema com velocidade leitura/gravação dados

Mensagem por alxsts »

Olá!

Se possível, procure gerar os DBFs temporários em memória. Veja exemplo:

Código: Selecionar todos

REQUEST HB_MEMIO
REQUEST DBFCDX
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PTISO

FUNCTION Main()

   LOCAL aArray

   Hb_LangSelect( 'PT' )
   Hb_CdpSelect( "PTISO" )

   aArray := {}

   DbCreate("mem:Teste", { { "Field1", "N", 2, 0 }, ;
                           { "Field2", "C", 4, 0 }, ;
                           { "Field3", "N", 2, 0 }, ;
                           { "Field4", "N", 2, 0 } } ,"DBFCDX", .T., "Teste")


   // ...
   // Procedimentos
   // ...

   DbCloseArea( "Teste" )
   DbDrop("mem:Teste",,"DBFCDX")

RETURN NIL
[]´s
Alexandre Santos (AlxSts)
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Problema com velocidade leitura/gravação dados

Mensagem por tonicm »

Pode ser uma opção, mas estava a pensar primeiro saber qual a razão exata de ficar mais lento quando está mais que 1 posto a trabalhar.
Para fazer alterações no código, pode ficar melhor se passar para MySQL essas tabelas temporárias.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema com velocidade leitura/gravação dados

Mensagem por JoséQuintas »

Provavelmente está usando NTX.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Problema com velocidade leitura/gravação dados

Mensagem por tonicm »

Estou a usar CDX
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema com velocidade leitura/gravação dados

Mensagem por JoséQuintas »

Depende muito do que está fazendo nos fontes.
A princípio, deveria ser igual pra qualquer quantidade de usuários.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Problema com velocidade leitura/gravação dados

Mensagem por ANDRIL »

Isto esta com cara de ser problema/configuração no Windows do servidor. Tem programas pesados no servidor rodando em conjunto com seu sistema? Como aplicativos que ficam consultando a internet para busca de pedidos o algo similar?

Tive um problema desses em um cliente, deixando as máquinas de rede bem lenta, achamos o problema no servidor, que tinha um programa que puxava pedidos online. Este programa executava a verificação a cada segundo, assim a rede interna sofria com lentidão, não devido ao consumo mas deixando o servidor escravo deste programa. Fechamos o programa e tudo voltou ao normal.

Há também configurações no registro do Windows que podem agilizar a Leitura/Gravação (CACHE) dos dados em disco, talvez ajude também.
Veja este assunto https://pctoledo.org/forum/viewto ... me#p113796

Até+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema com velocidade leitura/gravação dados

Mensagem por JoséQuintas »

Colocou tempo nos testes de RLock(), por exemplo.

Código: Selecionar todos

DO WHILE ! Rlock()
ENDDO
Uma coisa igual acima vai sobrecarregar a rede à toa.

Código: Selecionar todos

DO WHILE ! Rlock()
   Inkey(0.5)
ENDDO
Já com tempo, a diferença vai ser brutal.

Nos tempos do Clipper eu usava OSLIB() de adicional, e colocava uma chamada a OL_Yield() pra liberar mais ainda para o Windows.
No Harbour o Inkey() já é suficiente.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder