Fórum Utilização de Banco de dados On-line(Remoto - Internet) #57270
20/11/2006
0
Estou tentando colocar o banco de dados de um cliente meu para acessar on-line, o banco fica na fabrica e as lojas acessam ele pela internet.
Problema : Está muito lento. A velocidade da conexão na fabrica é velox de 1GB e onde acessa velox de 600 mb e mesmo assim demora 2x mais que se estivesse local.
Mas essas são conexões boas e demora, sendo que eu pretendo ultilizar em conexões de banda larga menores.
Historico: Aos poucos fui percebendo alguns erros e fui corrigindo.
Meu banco era Interbase 6.0 ai eu mudei para Firebird 1.0 depois 1.5, mas a extenção e o resto continuou a mesma, esses dias que eu fiz um backup e restore utilizando o gbak. Por isso acredito que tenha coisas para ser feito no banco de dados onde a aplicação fique mais rapida.
Esses dia descobri a utilização do Sweep e etc...
Então se alguem souber de algo que eu possa fazer para melhorar a performace do meu banco, solicito ajuda.
desde já agradeço
T+
Marbravo
Curtir tópico
+ 0Posts
21/11/2006
Weber
Não acredito que a velocidade de conecção de seu cliente seja 1GB e 600MB e sim [b:7751337289]1MB e 600KB[/b:7751337289]
Gostei + 0
21/11/2006
Marbravo
é isso mesmo, erro meu.
lentidão já era esperado, mas tá fora do normal, pois outras aplicações de concorrentes que utilizam Firebird rodam com mesnos lentidão do que minha aplicação.
Dicas?
obrigado
Gostei + 0
21/11/2006
Cabelo
Colega.. se você comparar uma conexão de 1 MB (Internet) com uma que no mínimo é de 10 MB (Local) claro que a performance vai ser bem menor.. Eu utilizo um sistema on-line entre quatro filiais X matriz.. uso firebird 1.5 e funciona perfeitamente bem... acesso via tunel VPN e acesso normalmente, claro que com menor velocidade do que localmente.. Há uns 6 meses atrás estava com muitos problemas em relação à velocidade de acesso nas filiais, então tive que alterar todo o sistema e fazer Procedures, Triggers e Views, pois isso acarreta que o processamento será feito de uma só vez direto no servidor, e não uma troca de protocolos via Internet.. Aqui melhorou e muito a velocidade.. já cheguei a parâmetros de utilização satisfatório, mas lembre-se.. sempre vai ser muito menor a velocidade de acesso quando comparada com uma conexão local.. Faça um teste e veja a diferença, pegue um processo no delphi e transforme em procedure.. a velocidade é muito diferente.. se você já faz isso.. pode optar por uma programação em camadas.. e evitar processos desnecessários em seu micro local..
Quando você diz que a performance é muito melhor em ferramentas ou BDs concorrentes do firebird, explique melhor.. pois gostaria de entender o que disse??
um abraço..
Gostei + 0
21/11/2006
Marbravo
Estou Ciente disso.
Essa é uma dica, vou tentar para verificar.
Mas só para esclarecer, se faço um select na aplicação ou requisito a execução de uma procedure no banco, tem muita diferença? Qual a diferença?
Quando você diz que a performance é muito melhor em ferramentas ou BDs concorrentes do firebird, explique melhor.. pois gostaria de entender o que disse??
Desculpe não completei a frase. Concorrentes meus, outras empresas que prestam serviço como a minha utilizam remotamente via internet e tem uma performace melhor que o meu sistema.
Só para relatar algumas dicas que já adquiri.:
- O banco de dados nomeado como ´.GDB´ demora mais no WinXP e Win2000 a abrir do que uma outra extenção como ´.IB´ ou ´.fdb´, pois o esses sistemas Operacionais verificam todo o arquivo antes de abrir.
- SWEEP - esse comando ´limpa´ o banco de dados, pois mesmo depois de apagar os registros no banco eles ainda existem, o Sweep limpa realmente.
Outras dicas que ainda não sei se afetarão na performace de meu banco
- Hoje Utilizo o driver do Interbase, pretendo mudar para UIB FireBird15
haverá melhora?
Fora isso é apagar registros no banco para deixar ele menor e mais leve para rodar online.
se alguem tiver dica ou me corrigir nos casos citados acima fique a vontade.
sds,
Gostei + 0
21/11/2006
Marbravo
Estou Ciente disso.
Essa é uma dica, vou tentar para verificar.
Mas só para esclarecer, se faço um select na aplicação ou requisito a execução de uma procedure no banco, tem muita diferença? Qual a diferença?
Quando você diz que a performance é muito melhor em ferramentas ou BDs concorrentes do firebird, explique melhor.. pois gostaria de entender o que disse??
Desculpe não completei a frase. Concorrentes meus, outras empresas que prestam serviço como a minha utilizam remotamente via internet e tem uma performace melhor que o meu sistema.
Só para relatar algumas dicas que já adquiri.:
- O banco de dados nomeado como ´.GDB´ demora mais no WinXP e Win2000 a abrir do que uma outra extenção como ´.IB´ ou ´.fdb´, pois o esses sistemas Operacionais verificam todo o arquivo antes de abrir.
- SWEEP - esse comando ´limpa´ o banco de dados, pois mesmo depois de apagar os registros no banco eles ainda existem, o Sweep limpa realmente.
Outras dicas que ainda não sei se afetarão na performace de meu banco
- Hoje Utilizo o driver do Interbase, pretendo mudar para UIB FireBird15
haverá melhora?
Fora isso é apagar registros no banco para deixar ele menor e mais leve para rodar online.
se alguem tiver dica ou me corrigir nos casos citados acima fique a vontade.
sds,
Gostei + 0
21/11/2006
Cabelo
Ainda bem.. rs..
Bom ao que me consta, quando você utiliza uma procedure, todo o precesso é feito localmente pelo servidor, o que significa uma enorme diferença no tempo de processamento.. aí só te manda o resultado..
Para fazer selects, utilize as Views.. que são ótimas pois você faz somente uma rquisição ao servidor, e ele te retorna tudo de uma só vez, e não linha a linha como um SQL normal.. pois como disse anteriormente o precesso é feito totalmente no servidor..
Isso depende também da ferramenta que você utiliza para criar o sistema.. existem componentes no delphi que forma feitos especificamente para conexão via web, outros não, mas também funcionam.. o problema é saber se o uso local é mais ou menos necessário que o acesso web.. isso influência na escolha da forma de programação.. se você utiliza o IBExpress para realizar suas conexões e querys, ou procedures.. você deve criar um sistema que seja totalmente CLIENTE/SERVIDOR, pois senão terá problemas no acesso via web.. em realção à velocidade.. este é emu caso.. utilizo IBExpress e não tenho problemas pois meu sistema está bem desenvolvido CLIENTE/SERVIDOR, onde trabalho com os clientdatasets localmente e todo o processo ´pesado´ é feito nas procedures do próprio banco..
Então cria um outro banco com a extensão .FDB
Para fazer isso gere o script do banco (geral) , e altere apenas a extensão..
Eu utilizo o driver do Firebird.. altere e veja as melhorias..
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)