Sistemas em Rede
Moderador: Moderadores
- PAULO S
- Usuário Nível 3

- Mensagens: 176
- Registrado em: 24 Abr 2006 09:18
- Localização: Santo Anastácio - SP
Sistemas em Rede
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 !
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 !
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
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 ?
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
MySQL c/ SQLRDD
HwGui + GTWVG
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
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.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
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
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
MySQL c/ SQLRDD
HwGui + GTWVG
- PAULO S
- Usuário Nível 3

- Mensagens: 176
- Registrado em: 24 Abr 2006 09:18
- Localização: Santo Anastácio - SP
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
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
Clipper 5.2d/NTX -> xHarbour/CDX
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
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
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- PAULO S
- Usuário Nível 3

- Mensagens: 176
- Registrado em: 24 Abr 2006 09:18
- Localização: Santo Anastácio - SP
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 !
É 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
Clipper 5.2d/NTX -> xHarbour/CDX
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
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)
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)
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
:?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
MySQL c/ SQLRDD
HwGui + GTWVG
- PAULO S
- Usuário Nível 3

- Mensagens: 176
- Registrado em: 24 Abr 2006 09:18
- Localização: Santo Anastácio - SP
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 ?
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
Clipper 5.2d/NTX -> xHarbour/CDX
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Dependendo das circunstancias é normal, porém não desejável né ?Isso é normal acontecer ?
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
MySQL c/ SQLRDD
HwGui + GTWVG
... 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 ??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 .....
C:\Xharbour\Xdev\Fw\VSX
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
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.porem ao deletar e criar novamente o tamanho não mudou nada , como isso então ??
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG

