Bibliotecas Mediator para o build 1.0.0

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Unico deifeito no Mediator na minha opnião, não poder acessar tabelas MYSQL on-line ou seja se meu cliente tem um site com PHP+MYSQL hospedado no terra, não podemos fazer integração dessa base com nossos sistemas pq tem que ter o tal do Mediator server instalado onde se encontra o MYSQL.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

Instalei o mediator para MYSQL e meu sistema ficou lento demais, para vcs terem uma idéia olhem o comparativo:

Relatório simples apenas dando um "do while" num DBF
DBF = 4 segundos
MySQL = 12 segundos

Relatório mais complexo usando uma funçäo com recursividade que tenho em todo meu sistemas
DBF = 3 segundos
MySQL = 23 segundos

Relatório complexo com vários "do while" ainhados em vários DBFs e usando a mesma funçäo com recursividade.
DBF = 7 segundos
MySQL = 2 minutos e 44 segundos

Como ficou tudo bem mais lento pensei que poderia ser alguma coisa com meu sistema entäo fiz um pequeno PRG separado varrendo um DBF com 230 mil registros

Código: Selecionar todos

horaInicial=time()
use planeja
set index to pla_ind1
go top
x=0
do while !eof()
   x++
   @ 1,1 say x picture "99999999"
   skip
enddo
horafinal=time()
@ 2,5 say ElapTime( horainicial, horafinal )
close data

o resultado foi:
usando DBFCDX = 43 segundos
usando MySQL = 1 minuto e 23 segundos

Existe algum "pulo do gato" pra poder ficar mais rápido?
estou fazendo alguma besteira?
por que ficou täo lento assim?

Estou usando tudo localmente em um notebook isolado de qualquer rede:
Pentium Core Duo 2.0 2GHZ com 2 Gb de memória RAM
Windows Vista Ultimate
Mediator para MySQL
xharbour 1.0.0 estável + GTWVW + HWGUI
My SQL versäo 4020a

Muito Obrigado

Luciano Bonfim de Azevedo
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Em um sistema local, vc não iria perceber mesmo, um ganho de performance, porém, retroceder também não dá né ?

Experimente atualizar o MySql para a versão 5.

Em tempo: Notei que voce não citou o uso do driver ODBC para MySql. O Vista já traz ele ?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

desculpa esqueci de dizer o driver odbc... estou usando o MyODBC-standard-3.51.8-win.exe

quanto migrar para o mysql5 acredito que não vai resolver muita coisa pq essa versão que estou usando é de janeiro de 2007 não é tão antiga assim não...mas de qualquer maneira vou baixar a 5.0

sabe me dizer se tem algum tipo de configuração espeial no mediator ou no mysql para aumentar a performance...?

Muito Obrigado
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Luciano,

Aparentemente tá tudo "normal".

Não esqueça: Numa única máquina, em termos de velocidade o DBF ganha com um pé nas costas de MySql. Ja em uma REDE LOCAL a coisa se inverte.

Uma dica: Não sei pq, mas quando buscamos dados em várias tabelas no MySql a coisa fica preta. O que eu fiz e ganhei um pouco de performace foi copiar o conteudo da tabela MYSQL para DBF e buscar esses dados do DBF.

Exemplo: Se no seu relatório de VENDAS vc precisa ir na tabela de clientes buscar o NOME do cliente, copie toda a sua tabela de clientes para um DBF TEMPORÁRIO e busque o nome nesse DBF. Assim:

Código: Selecionar todos

      *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

      GERA_DBF()
      tmp1 = dbftmp

      SELECT CLIENTE
      DBSETORDER(1)
      DBGOTOP()
      COPY FIELDS CODIGO, NOMCLI TO C:\&tmp1 VIA 'DBFCDX'
      USE C:\&tmp1 NEW VIA 'DBFCDX'
      INDEX ON CODIGO TAG CHAVE1 TO C:\&tmp1

      *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

      SELECT PEDIDO
      DBSETORDER(5)
      DBGOTOP()
      OrdScope( 0, DTOS(vDATAi) )
      OrdScope( 1, DTOS(vDATAi) )
      DBGOTOP()
      DO WHILE !EOF()

         xSOMA   = 0        
         xCODIGO = CODCLI

         SET RELATION TO CODCLI INTO &tmp1

         @ PROW() + 01,05 SAY "Cliente " + StrZero(&tmp1->CODIGO,5) + " " + &tmp1->NOMCLI
         @ PROW() + 01,00 SAY "Venda    Emissao    Vendedor      Emitente   Qtde Parc.  1o. Venc.   Tot Pedido"

         DO WHILE CODCLI = xCODIGO

            @ PROW() + 01,00 SAY PEDIDO PICT "@E 999,999"
            @ PROW()     ,08 SAY DATEMI
               
            @ PROW()     ,19 SAY CODVED PICT "99"
                              
            @ PROW()     ,34 SAY CODEMT PICT "9"
            @ PROW()     ,48 SAY STRZERO(QTDPAR,02)
            @ PROW()     ,56 SAY VENPRI
            @ PROW()     ,70 SAY TOTPED PICT "@E 99,999.99"

            DBSKIP()
        ENDDO
    ENDDO

Não esqueça também que com MYSQL ganha-se confiabilidade além de outras vantagens já enumeradas neste tópico.

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

esse problema deve ser culpa do meditor e nao do mysql, pois se eu entro no mysql front e dou um "select * from planaja" ele retorna todos os 230 mil regsitros em apenas 1 segundo.

acredito se eu passar a dar os comando direto usando T-SQL vai ficar bom, mas ai terei que mexer em todo o sistemas....

vou testar com outrso bancos sql-server e postgree pra ver a velocidade e digo pra vcs...
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Código: Selecionar todos

OrdScope( 0, DTOS(vDATAi) )
OrdScope( 1, DTOS(vDATAi) )
Janio, já experimentou usar as funções do Mediator para ver se melhora ?

Código: Selecionar todos

MedSetScpe(0,dtos(vdatai))
MedSetScpe(1,dtos(vdatai))
Tenho notado também o seguinte: quando me conecto com o servidor instalado no PC ( AthlonXP 2600, 512MB, Windows Server 2003 ), o desempenho é um tanto piolhento. Já quando conectado no servidor instalado no Note mesmo ( Sempron 3400, 1024MB, Windows Server 2003 ), o desempenho fica muito bom. A maquina cliente aqui é um Cyrix 200 com 32MB e W98.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

pessoal,

testei agora os mesmos relatórios usando o MSSQL 2005 express e ficou bem melhor que o mysql mas continua inferior que o dbfcdx

relatorio de obras
dbf = 4 seg
mysql = 12 seg
sqlserver = 8 seg

planilha orcamentaria
dbf = 3 seg
mysql = 23 seg
sqlserver = 9 seg

medicao financeira apenas periodo 15
dbf = 7 seg
mysql = 2 min 44 seg
sqlserver = 25 seg

vou instalar e testar o postgree e o mysql 5.0
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Luciano, o Mediator funciona free com MS-SQL e PostgreSql ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

com ms-sql é free até 3 usuários e postgree até 5 usuários conectados ao mesmo tempo....

esse que é o problema...

vou testar agora com o mysql versäo 5 para ver a performance...
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

com mysql pode usar até 100 ao mesmo tempo gratuitamente com xharbour
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Luciano Bonfim escreveu:com mysql pode usar até 100 ao mesmo tempo gratuitamente com xharbour
Pois é, no Mysql eu já sabia, eu estavaaaa interesado no Postgresql mesmo. vlw
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

Janio isso ja aconteceu comigo mas agora to tentando lembrar a solução que fiz...rs...mas por hora...
Eu troquei as funções de ordscope pelas do Mediator


MedSetScPe(TOPSCOPE,cCodigo)
MedSetScPe(BOTTOMSCOPE,cCodigo)
dbgotop()


________________________________________________________________________________________________________
(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
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Bibliotecas Mediator para o build 1.0.0

Mensagem por alaminojunior »

Há um bug nessa versão do Mediator. Quando há na Tabela APENAS UM REGISTRO, quando o visualizamos pelo tbrowse ou dbedit o mesmo registro fica aparecendo DUAS VEZES. A mesma coisa ocorre quando é filtrado pelo OrdScope ou outro e o resultado do filtro é APENAS UM REGISTRO, ele aparece DUAS VEZES no Tbrowse. Quando há mais de um registro na tabela isso não acontece.

Se alguém que sabe inglês um pouquinho puder reportar esse bug ao pessoal do mediator, seria bem legal. Alguém se habilita??
Jânio, eu não manjo de inglês, mas o Google manja, por isso eu enviei alguns e-mails para o suporte da OTC e eles resolveram. Me mandaram o link para a versão 4.3.0.0c que resolveu o problema.
Eis o link, mas não sei até quando vai permanecer.
http://dl.otc.pl/tmp/mmysqlnt.exe

Username: tmp, password: d23re8_72*r
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Re: Bibliotecas Mediator para o build 1.0.0

Mensagem por janio »

blz. tô baixando!
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Responder