Sistemas em Rede

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

Moderador: Moderadores

Avatar do usuário
PAULO S
Usuário Nível 3
Usuário Nível 3
Mensagens: 176
Registrado em: 24 Abr 2006 09:18
Localização: Santo Anastácio - SP

Sistemas em Rede

Mensagem por PAULO S »

Pessoal, é um grande prazer participar de um fórum deste nível, que por sinal já acompanho a muito tempo.
Estou iniciando a migração dos meus sistemas para xHarbour e índices CDX. Ainda uso Clipper 5.2d e índices NTX.
O tema é o seguinte: Alguns dos meus sistemas começaram a ficar lentos em algumas pesquisas que envolviam arquivos de dados com maior quantidade de registros, até mesmo para abertura destes arquivos na entrada no sistema.
Como trabalho com os arquivos de dados e índices: Após a entrada no sistema abro todos os arquivos de dados e índices em como compartilhado que permanecem assim, somente fechando quando há necessidade de uso em modo exclusivo ou na saída do sistema. Todos os travamentos necessários de arquivos e registros são feitos adequadamente quando necessários.
Se rodo o sistema na máquina que está instalado o banco de dados, tudo fica muito rápido, mas se acesso por um terminal já fica mais lento e se dois acessam ao mesmo tempo fica muito lento. Já testei instalando numa máquina com Windows 98 e ligada apenas a outro com XP, quando roda apenas uma fica legal, mas as duas juntas fica muito lento.
Posso estar fazendo alguma coisa errada ? Está correto este tipo de trabalho e abertura de arquivos ?
Se alguém puder me dar uma luz, agradeço muito.
Feliz 2008 a todos !
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Olá meu caríssimo, seja bem vindo.
Pelo que vc relatou, está tudo em ordem com o tratamento dos arquivos e indices.
Sendo assim, creio que seria interessante verificar o hardware de rede ( placas, hub´s, cabeamento, protocolo utilizado, etc...) e ainda checar as configurações de teu servidor. Aliás qual o sistema usado em seu servidor ?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
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

Lentidão com dados basicamente envolve memória das maquinas das rede, pois no momento da abertura dos arquivos, se não existir memória suficiente este equipamento irá usar a memória cache em disco tornando mais lento e propicio a erros de corrupção.

Eu geralmente defino o montante de memória com o mesmo valor de megaherts da maquina, exemplo: pentium 166 - minimo 156 e ai por diante, pentium 266 - minimo 256, etc.

Com o uso de .NTX voce aumenta o volume de arquivos abertos, aumentando a possibilidade de um dos indices deixar de abrir por falta de memória e possivel corrupção.

Usando .CDX voce fará uma diminuição de arquivos abertos sendo que um arquivo .DBF com um arquivo .CDX pode manipular até 15 chaves por .CDX, enquanto que com .NTX voce precisaria de 15 arquivos.

As filtragens com .CDX ficam super simplificadas com o use de ESCOPOS, ou seja, registros limitados por um ponto de inicio e fim.

Exemplo:

Voce tem uma chave que ordena o arquivo CLIENTES pelo nome e deseja filtrar todos os clientes entre C e E, voce poderia usar SET FILTER mas isto tornaria sua aplicação super lenta. Como os escopos trabalham diretamente no .CDX eles filtram no indice e linkam a tabela de forma instantanea.

Mesmo fazendo uso de .CDX, aconselho voce a melhorar a memória das maquinas.

Não adianta fazer tunning numa ferrari que usa motor de fusca.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Já que o Rochinha mencionou também a questão de indices e filtros...
Dê só uma olhada. ;)

https://pctoledo.org/forum/viewtopic.php?t=7266
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
PAULO S
Usuário Nível 3
Usuário Nível 3
Mensagens: 176
Registrado em: 24 Abr 2006 09:18
Localização: Santo Anastácio - SP

Mensagem por PAULO S »

Alamino e Rochinha, :{
Obrigado pela atenção, quanto às máquinas vou dar uma checada nas redes que estão mais lentas, entretanto, como disse, fiz um teste com apenas duas máquinas interligadas e memória suficiente, mas quando realizam uma pesquisa com arquivos maiores, ao mesmo tempo, ficam muito lentas.
Realmente .CDX aumentou o desempenho quando comparado com .NTX, fiz as comparações cronometradas. Vou estudar melhores as pesquisas e filtragens para aproveitar melhor os recursos do .CDX. Depois volto a postar, provavelmente com dúvidas. Mais uma vez obrigado pela ajuda e Feliz Ano Novo. :)Pos :xau
Paulo
Clipper 5.2d/NTX -> xHarbour/CDX
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Minha modesta opnião pessoal, abra somente os DBF que for usar em determinada area de seu sistema, ou seja não abra tudo no começo do sistema, algo talvez dessnecessario caso não for usar todos os DBF, no meu caso se eu fizer isso em um sistema de medio porte com 80 ou 90 .DBF mais 80 ou 90 .CDX....isso seria como um tiro no pé.

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
PAULO S
Usuário Nível 3
Usuário Nível 3
Mensagens: 176
Registrado em: 24 Abr 2006 09:18
Localização: Santo Anastácio - SP

Mensagem por PAULO S »

Leonardo,
É exatamente deste tipo de opinão que preciso, desejo saber como costumam proceder e porque, para que passa avaliar e testar estas opções.
Quanto mais sugestões melhor a gama de possibilidades para teste e assim talvez possa resolver este problema e auxiliar outros que possam te-lo também.
Espero outras sugestões...
Valeu Sygecom. Feliz 2008 !
Paulo
Clipper 5.2d/NTX -> xHarbour/CDX
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Mensagem por asimoes »

Olá Paulo,

Outra informação: Defina somente files e buffers para a quantidade de tabelas que o
seu sistema for usar:

Aplicação com 100 tabelas: files=110 (O ideal é abrir a tabela somente quando for
necessário, conforme dica do Leonardo)

E buffers multiplos de 8: 8 16 32..

Quanto maior o uso de files e buffers menos memória disponível.

Se possível o servidor ser dedicado.

Feliz Ano Novo.

[]´s :)Pos
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
jfilho.ze
Usuário Nível 1
Usuário Nível 1
Mensagens: 36
Registrado em: 06 Out 2007 19:11
Localização: Teresina-PI

Mensagem por jfilho.ze »

Amigo Paulo S,

Seu problema é de projeto, reveja seus conceitos, pois abrir todos os dbf´s na entrada do sistema, véio é LOUCURA. :|<
José Filho
Avatar do usuário
PAULO S
Usuário Nível 3
Usuário Nível 3
Mensagens: 176
Registrado em: 24 Abr 2006 09:18
Localização: Santo Anastácio - SP

Mensagem por PAULO S »

Valeu Pessoal !
É isso, ainda não efetuei os testes, mas se for o caso, para solucionar o problema, refarei o projeto do sistema.
Ainda aguardo outras opiniões. Obrigado a todos.
Bom início de ano novo a todos. :)Pos
Paulo
Clipper 5.2d/NTX -> xHarbour/CDX
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

abrir todos os dbf´s na entrada do sistema, véio é LOUCURA.
:?

Acredito que o problema não seja bem este !
O nosso amigo Paulo S disse que está migrando seus sistemas para xHarbour com indices CDX. Se o sistema funcionava bem com o Clipper, não vejo porque não funcionaria bem com o xHarbour.

Acredito sim que precise ser feita uma revisão nos códigos onde envolve é claro, bancos e indices.

Ao que me parece o sistema dele foi crescendo (banco de dados), e com isso precisa ser feita uma manutenção nos bancos. PACK´s, Reindexar os bancos de forma mais eficiente (se possível indexar sem colocar funções nos campos), etc...

Tomar cuidado com os commit´s da vida, como nós já temos falado tanto por aqui.

Lembrando da sequencia ideal:

trava > replace > commit > destrava


Commit é a mesma coisa de DbCommitall() - Descarrega os buffers de todas as areas de trabalho abertas.

DbCommit() - Descarrega apenas o buffer da area de trabalho atual. Dê preferencia a este tipo.

Abrir todos os dbf´s na abertura do sistema pode sim causar uma ligeira lentidão "no início".
Depois que todos os dbf´s estão abertos...( o proprio nome já diz "ESTÃO ABERTOS" )
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
PAULO S
Usuário Nível 3
Usuário Nível 3
Mensagens: 176
Registrado em: 24 Abr 2006 09:18
Localização: Santo Anastácio - SP

Mensagem por PAULO S »

Alamino,
Realmente estou migrando os sistemas para xHarbour/.CDX, mas alguns sistemas já apresentavam lentidão no Clipper, melhorou o desempenho com a migração, entretanto ainda é lento. Mudei algumas estruturas de índices e também melhorou, mas não o suficiente, por isso estou buscando outras opiniões para este problema. E a lentidão só é maior quando um determinado arquivo é utilizado por mais de um terminal. Isso é normal acontecer ?
Paulo
Clipper 5.2d/NTX -> xHarbour/CDX
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Isso é normal acontecer ?
Dependendo das circunstancias é normal, porém não desejável né ?

Quantos dbf´s vc possui ?
Ele está muito fragmentado ?
Que maquina vc usa como servidor ?
Que rede é utilizada ? 10 ou 100 ?

Ao usar indices CDX, vc deverá deleta-los antes de reindexar, senão eles vão crescendo, crescendo, crescendo.... e deixando tudo uma .....
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

alaminojunior escreveu:
Isso é normal acontecer ?

Ao usar indices CDX, vc deverá deleta-los antes de reindexar, senão eles vão crescendo, crescendo, crescendo.... e deixando tudo uma .....
... Quanto a esse lance de crescer não intendo , pois eu fiz um pequeno teste, reindexei minha aplicação , varias e varias vezes , e após ter feito isso , fui ver o tamanho dos arquivos CDX , alguns maiores e outros menos , porem ao deletar e criar novamente o tamanho não mudou nada , como isso então ??
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

porem ao deletar e criar novamente o tamanho não mudou nada , como isso então ??
Mas foi exatamente o que eu disse. Se vc não deletar o CDX antes de reindexa-lo, ele vai somando outras bag´s no final, e não sobreescrevendo, como seria o ideal.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Responder