Página 3 de 3
Re: Performance na Rede
Enviado: 19 Set 2009 01:45
por sygecom
Olá eu faço, porem minha query() é enviada via SQLRDD que uso o mesmo comando para Firebird, Mysql e Postgresql e me retorna um array com o resultado da query enviada.
Re: Performance na Rede
Enviado: 19 Set 2009 12:53
por Luciano Bonfim
eu também gostaria muito de poder usar a sqlrdd, mas ela não suporta SQLSERVER e eu irei precisar do SQLSERVER no cliente....
Alamino
no meu caso eu abro os DBFs na entrada do móduo e nos relatórios vou usando os SELECT nomedoDBF se eu for usar USE vou ter que fechar os arquivos abertos... tem como usar a query dentro do SELECT nomeDoDBF ?
Re: Performance na Rede
Enviado: 19 Set 2009 13:02
por alaminojunior
Não precisa fechar, seria como abrir numa nova área.
Re: Performance na Rede
Enviado: 19 Set 2009 13:37
por hrodrigom
>> a propósito a rede näo é sem fio näo é cabeada...
Pode apostar que o problema está na sua rede sem fio.
Tem que lembrar que usando DBFCDX todo os datos trafegam na rade, então um relatorio por exemplo, vai puxar todos os dados para sua estação a travez da rede sem fio.
Faça um teste, puxe cabos provisoriamente e prove para seu cliente que o problema não é teu sistema, mas sim a rede.
Depois disto, procure uma solução, eu particularmente não uso rede sem fio em nenhum cliente, prefiro puxar cabos+furar parede+canaletas+poeira=sofrimento para instalar, mas depois eu estou tranquilo quanto ao desempenho do sistema.
Use cabos cat5e, e um bom swith.
O detalle das redes sem fio, se vc tem um AP de 54mbs (já é a metade de uma rede cabeada cat5e) e vc tiver a sorte de conectar um notebook velho ou qualquer outro dispositivo sem fio de 10mbps toda sua rede baixa a 10mps. Depois se um destes dispositivos estiver a traz de uma parede o desempenho é pecimo.
Então imagine, no teste com teu PC vc faz um relatorio em 4seg. Mas o teu HD no minimo deve ter uma taxa de leitura de 50MBps. e tua rede no maximo terá 54mbps. Vc deve saber a diferença em MB e mb né? então não precisa falar mais nada de mal das redes sem fio..

Eu aposto 100 contra 1 que o teu problema está na rede.
Espero ter contribuido com algo.
Saludos
Re: Performance na Rede
Enviado: 19 Set 2009 15:10
por sygecom
Luciano Bonfim escreveu:eu também gostaria muito de poder usar a sqlrdd, mas ela não suporta SQLSERVER e eu irei precisar do SQLSERVER no cliente....
Trabalha Sim, inclusive é onde tem o melhor desempenho.
Re: Performance na Rede
Enviado: 19 Set 2009 21:19
por Luciano Bonfim
ops... tava confundindo com a sqllib do vailton... vou baixar a sqlrdd e testar....
ela tb precisa de um programa rodando no servidors igual o mediator?
Re: Performance na Rede
Enviado: 19 Set 2009 23:35
por sygecom
Luciano Bonfim escreveu:ela tb precisa de um programa rodando no servidors igual o mediator?
Não é precisa !
Re: Performance na Rede
Enviado: 20 Set 2009 10:18
por janio
MARCELOG
tabela A
Campo1/Nome
campo2/Código da categoria
Campo3/Código do tipo
tabela B
Campo4/Código
Campo5/Nome da categoria
Campo6
tabela C
Campo7/Código
Campo8/Nome do tipo
Campo9
select A.Campo1,A.Campo2,A.Campo3,B.Campo5,C.Campo8
from A
left join B on B.Campo4=A.Campo2
left join C on C.Campo7=A.Campo3
order by A.Campo1
Isso geraria uma consulta/ tabela assim
A.Campo1 - A.Campo2 - A.Campo3 - B.Campo6 - C.Campo9
AAAA 0001 0002 A X
BBBB 0001 0002 A X
CCCC 0005 0003 F Z
DDDD 0001 0005 A Y
Então oQuery:GETROW(3):FIELDGET(4) retorna a letra "F"
Mesmo sem um índice, com certa velocidade, você poderia ordenar o resultado por qualquer campo indicado na pesquisa.
Alguém saberia fazer com MEDIATOR??
Re: Performance na Rede
Enviado: 20 Set 2009 19:15
por alaminojunior
janio escreveu:Alguém saberia fazer com MEDIATOR??
Não testei, mas "acredito" que é só usar a mesma sentença, haja vista que a seguinte sentença (simples) funciona. Um detalhe: coloque o objetivo da sentença (ou partes) em uma ou mais variáveis.
Código: Selecionar todos
cr1:= "select * from cdcli003 where clicod = "
cr2:= " order by clidat"
seek1:= str(clicod,7)
use (netname()) as cr1+seek1+cr2 new scrollable overwrite
Esta sentença me mostra todos os telefones de determinado cliente, o mesmo que Set Scope. Pode-se usar também com LIKE %% para mostrar os registros que tenham determinada string.
Talvez precise deletar esta tabela ao encerrar a rotina, nem lembro mais, mas também é o de menos, pois com a cláusula OVERWRITE ela sempre será sobre-escrita.
Re: Performance na Rede
Enviado: 24 Set 2009 00:38
por clodoaldomonteiro
Pergunto aos amigos:
O sqlrdd é do xharbour comercial ou está disponível gratuitamente?
Se estiver, onde posso baixar?
Re: Performance na Rede
Enviado: 25 Set 2009 11:01
por Itamar M. Lins Jr.
É pago.
Comprar em:
www.xharbour.com
Saudações,
Itamar M. Lins Jr.
Re: Performance na Rede
Enviado: 06 Out 2009 14:10
por sygecom
Olá Clodoaldo,
o SQLRDD é pago, porem tem uma versão DEMO que você pode testar ela. Recomendo fortemente que teste bem o produto antes de comprar uma licença.
Re: Performance na Rede
Enviado: 23 Dez 2009 22:44
por alaminojunior
Certa vez fiquei devendo à algum colega do fórum (acho que foi o Jânio), um exemplo de select no MySql com xHarbour e Mediator. Como na época estava apenas testando, preferí deixar para quando estivesse em produção. Essa sentença foi feita com o auxílio de um amigo que já domina muito bem o MySQL.
Eis um exemplo que uso num sistema de ordem de serviço, em que faço uso de dados de 5 tabelas diferentes, cada uma relacionada à outra de alguma forma.
As tabelas são:
- itens da ordem de serviço
mecânicos
principal de ordens de serviço
veículos
clientes
Código: Selecionar todos
cr1:= "select i.IosDat,i.IosFun,i.IosTot,i.IosDes,i.IosDsc,i.IosOse,"+;
"o.OsePlc,o.OseDef,o.OseDes,"+;
"v.VeiDsc,v.VeiCor,v.VeiPro,"+;
"c.CliNom,"+;
"f.VndNom,f.VndIni "+;
"from cdios000 i, cdose000 o,cdvei000 v,cdcli000 c, cdvnd000 f "+;
"where i.IosFun='" // identificação do mecânico
cr2:= "'and i.IosDat between '" // data inicial
cr3:= "' and '" // data final
cr4:= "' and i.IosMob='Y' "+;
"and i.IosOse=o.OseNum "+;
"and v.VeiPlc=o.OsePlc "+;
"and c.CliCod=v.VeiPro "+;
"and f.VndIni=i.IosFun order by IosDat"
use (netname()) as cr1+o2+cr2+mydata(o3)+cr3+mydata(o4)+cr4 new scrollable overwrite
browse()
O danado retorna uma quantidade razoável de informações muito rapidamente.
Enfim, aquele monte de
seek´s estão com seus dias contados.
Em tempo: preferí postar aqui por julgar mais pertinente.
Caso algum moderador julgar o assunto mais pertinente com a seção de Dicas e Tutoriais ... fique à vontade.
Re: Performance na Rede
Enviado: 26 Dez 2009 20:06
por janio
Legal
alaminojunior,
Na época que surgiu este post, achei bem interessante e também fui atrás dessa solução.
Em relatório de VENDAS POR VENDEDOR, vou a tabela de
vendedores e de
clientes para pegar o nome do vendedor e do cliente na venda sem utilizar nenhum
seek.
Faço isso com uma só sentença em MySql. Sem nenhum seek.
É uma bala! Da tabela principal (vendas), pego só os campos que vão ser exibidos no relatório e aqueles que irão servir para os relacionamentos nas tabelas de vendedores e clientes.
Ah!, os dados já vem ordenado do jeito que vc quiser!
Código: Selecionar todos
use &dbftmp as "Select a03ped.codved, a16ved.codigo, a03ped.flgcan, a16ved.nomved, a03ped.pedido, a03ped.datemi, a03ped.codcli, a16cli.nomcli, a03ped.qtdpar, a03ped.venpri, a03ped.totped FROM a03ped,a16cli,a16ved WHERE a03ped.is_deleted = 'N' AND a03ped.flgcan='N' AND a03ped.codved=a16ved.codigo AND a03ped.codcli=a16cli.codigo AND a03ped.datemi>=&zDATAi AND a03ped.datemi<=&zDATAf ORDER BY a03ped.codved,a03ped.pedido" NEW SCROLLABLE