Qual a melhor maneira de montar um servidor FIREBIRD via int

Firebird

13/04/2006

Qual a melhor maneira de montar um servidor FIREBIRD via internet ?

Preciso ter um servidor com banco de dados FIREBIRD, que vai ser acessado localmente, e por outros pontos atraves da internet...

Tem como eu hospedar meu banco de dados firebird, em algum desses servidores que tem na internet, para acessa-lo via Delphi?

Qual a melhor opcao....? que não fique tao lento... ? Pois testei acessando diretamente via internet, informando apenas o IP do servidor, ficou muito lento....


Sistemp

Sistemp

Curtidas 0

Respostas

Denis

Denis

13/04/2006

use o Delphi com clientdatasets, e remotedatamodule.
No delphi 5 estavam na paleta Midas, e do 6 em diante na paleta datasnap. Funciona muito bem. Incluse tenho sistemas bem grandes rodando assim sem problema algum. Ah... e bem rápido.

Procure alguma coisa na net sobre Delphi com programação 3 camadas ou MultiTier.


GOSTEI 0
Camilo

Camilo

13/04/2006

tb estou desenvolvendo um sistema q rode via net e rede local, tive varios problemas de lentidão via net.. vou citar e o q fiz pra resolver alguns...
meu maior problema foi trafego na rede... tipo,
quando entro na tela de clientes na rede local eu mostrava todos, na net só por demanda, e assim em todas as telas de consultas, o q tive q fazer foi transferir varios processos do delphi para o banco, tipo na h da venda tenho q gravar:
baixar o produto
gravar em produtos vendidos
se teve entrada gravar caixa
gravar faturas recebidas de clientes
se teve cheque gravar cheque recebido
se teve fat a receber gravar cada parcela em contas a receber, isso eu fazia via delphi, todos os testes, whiles e inserts, isso numa venda de 5 rpodutos em 10x demorava uns 4 minutos com uma velocidade do server 256k e do terminal 128k isso limpo essa velocidade, com uso apenas pra essas duas maquinas, quando mudei ´tudo´ pra SP no banco está cerca de 20 segundos, mais ainda naum está pronto, pois naum manjava nada nada de SP, e com a ajuda de alguns colegas no msn consegui fazer muita coisa... um cara q me ajudou bastante foi Emersonen... me ajudou muito... mais ainda está umpuco lento pois naum domino 100¬ de SP... estou estudando muito sobre o assunto e estou aprendendo e mudando meu sistema,... está ficando bom...
então naum sei se vc jah usa SP e triggers na sua aplicação, mais o q quiz dizer q esse eh o caminho, além de ter um ip fixo ou no-ip, mais q tenha um ip válido...
espero ter ajudado


GOSTEI 0
Denis

Denis

13/04/2006

Boa tarde,

Use o componente clientdataset. Neste componente tem uma propriedade packetRecords. Neste componente vc define a quantidade de registros o servidor irá retornar. Ele faz um controle melhor de ´Fetchs´ do banco de dados. Por exemplo :
Se vc fizer a instrução em uma tabela com 1 milhão de registros. ( Select * from tabelaGrande). Setando a propriedade packetRecords = 40, então o sistema cliente irá apenas receber 40 registros e depois mais 40 se o ponteiro for mudado. Neste caso vc pode jogar esta tabela para ser exibida num grid, e não vai ficar lenta. Pois o sistema cliente não irá trafegar todos os registros e apenas 40. Claro que esta select é apenas ilustrativa. Mas já da para ter uma idéia de como o sistema pode ficar mais rápido.
O uso de clientdatasets melhor bastante o seu sistema com relação a performance. Sem contar que com ele tem a possibilidade de criar datasets em memória, salvar em xml etc...
Estude ele. É um componente muito bom e vai te ajudar muito com um sistema via net.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

Colegas...

Como eu devo proceder para melhorar a performance do sistema, usando .CLX...

Não existe a opção do RemoteDataModule... e o PacketRecords não alterou a velocidade em nada...

Como devor proceder em .CLX ??????


GOSTEI 0
Denis

Denis

13/04/2006

Olá,

Eu não sei como funciona direito programas com a CLX. ( nunca usei ). Mas tem o componente soap. Tente procurar alguma coisa. Parece que dá para fazer parecido com o Socket Server do windows.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

Colega...

.CLX é uma forma de programar, utilizando os recursos do compilador, para que vc possa portar um sistema em Delphi 7 para Kylyx 3 por exemplo... então não posso usar os recursos do Windows, preciso de usar os recursos que o delphi me disponibiliza, em .CLX...

Será que existe um outro componente para substituir o remotedatamodule??

Onde fica o componente SOAP????? não conseguí achar...


GOSTEI 0
Denis

Denis

13/04/2006

Olá,

Os componentes ´SOAP´ ficam na paleta Web Services. Eu li em algum canto que ele faz algo parecido com o Socket Server. Se não me engano foi na revista clube delphi.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

Obrigado pela resposta Denis...

Eu achei os componentes e pesquisei sobre o assunto... mas o que estes componentes especificamente podem melhorar a performance do meu sistema ´On-Line´, e como utilizar estes componentes????

Tentei utilizá-los... mas não obtive nenhuma melhora..


GOSTEI 0
Armando.boza

Armando.boza

13/04/2006

Obrigado pela resposta Denis... Eu achei os componentes e pesquisei sobre o assunto... mas o que estes componentes especificamente podem melhorar a performance do meu sistema ´On-Line´, e como utilizar estes componentes???? Tentei utilizá-los... mas não obtive nenhuma melhora..


Assinantes da ClubeDelphi podem acessar o site e baixar as video-aulas do Guinter Pauli sobre servidor de aplicação SOAP ... eu ja assisti e recomendo a todos, só que infelizmente o sistema tem que ser totalmente refeito para rodar com tal tecnologia pois todas as regras de negocio do sistema ficam na camada do servidor de aplicação e não no aplicativo ou banco.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

[quote=´armando.boza]
Assinantes da ClubeDelphi podem acessar o site e baixar as video-aulas do Guinter Pauli sobre servidor de aplicação SOAP ... eu ja assisti e recomendo a todos, só que infelizmente o sistema tem que ser totalmente refeito para rodar com tal tecnologia pois todas as regras de negocio do sistema ficam na camada do servidor de aplicação e não no aplicativo ou banco.


Perfeito... mas então quer dizer que terei um .exe rodando no servidor????

mas meu servidor é Linux... como farei isso????? outra coisa... então... qual o motivo de se ter um túnel VPN para este tipo de aplicação????


GOSTEI 0
Armando.boza

Armando.boza

13/04/2006

Perfeito... mas então quer dizer que terei um .exe rodando no servidor???? mas meu servidor é Linux... como farei isso????? outra coisa... então... qual o motivo de se ter um túnel VPN para este tipo de aplicação????


na verdade não é um .exe e sim uma dll compilada pelo delphi rodando no serviço do windows .. e realmente, é para WINDOWS, na video-aula ele explica que é possivel fazer um pra rodar no linux mas é um pouco diferente.

agora, se vc ja possui uma VPN ou um tunel como o Zebedee rodando eu aconselho a deixar como está que é mais simples e fora que oferece mais recursos pois estão interligadas as intranets.

nos meus clientes que querem acessar a base de dados pela internet eu dou esses dois tipos de conexão como opção (VPN ou Zebedee), ai fica a gosto deles.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

Já tenho uma VPN...

O problema é que um selecy simples no meu sistema... demora muito... cerca de 1 minuto cada select... fica totalmente inviável a operação...

como faço para resolver o problema então?


GOSTEI 0
Armando.boza

Armando.boza

13/04/2006

Já tenho uma VPN... O problema é que um selecy simples no meu sistema... demora muito... cerca de 1 minuto cada select... fica totalmente inviável a operação... como faço para resolver o problema então?


Bom, primeiramente deve ser levado em conta qual o serviço de internet que vc utiliza e como foi montada sua VPN, aqui em Londrina - PR a maior parte das ADSLs são da sercomtel que por sinal é muito boa.

Por exemplo, tenho um cliente que possui uma adsl da sercomtel de 320 kbps, utilizando o Zebedee ou uma VPN pelo windows xp consigo dar um select * para consultar todos os clientes, cerca de 300 registros, e me retorna o resultado em algo em torno de 7 a 9 segundos.
Não é como uma Intranet mas está bem aceitavel.

Deve-se levar em conta tb a forma de programação utilizada, por exemplo, a utilização de componentes IBTable deixa a aplicação muito lenta. O bom mesmo é forçar o usuario a refinar sempre as consultas para retornar o minimo de registros possíveis para ampliar o desempenho e sempre que possível utilizar Stored Procedures para consultas mais detalhadas.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

Eu uso na Matriz uma conexão ADSL speedy telefônica de 800 KBPS e na filial um ADSL speedy telefônica de 256 KBPS....

Não uso componentes Tables...

Usos DBExpress + clientdataSet..

Tudo cliente/servidor... mas mesmo assim... está muito lento.. inaceitável...

Estou programando .CLX... portanto não posso utilizar os recursos do Wndows... O que pode melhorar então a performance do sistema On-Line... já que o sistema local roda perfeitamente bem..?


GOSTEI 0
Armando.boza

Armando.boza

13/04/2006

Eu uso na Matriz uma conexão ADSL speedy telefônica de 800 KBPS e na filial um ADSL speedy telefônica de 256 KBPS.... Não uso componentes Tables... Usos DBExpress + clientdataSet.. Tudo cliente/servidor... mas mesmo assim... está muito lento.. inaceitável... Estou programando .CLX... portanto não posso utilizar os recursos do Wndows... O que pode melhorar então a performance do sistema On-Line... já que o sistema local roda perfeitamente bem..?


Nossa carinha, realmente de internet vc está bem. :D

A programação tb está certa.

Não tem explicação para a lentidão do seu sistema, era pra estar rodando rapidinho.

Qual Firebird vc está utilizando?

Quando vc tenta copiar algum arquivo pela rede da vpn a transferencia é rapida ou lenta?

As vezes não é o sistema e o firebird e sim a vpn.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

Colega... eu uso o VNC para acessar remotamente os micros na Filial... e roda muito rápido... a taxa de tranferência no túnel na cópia de arquivos é excelente... tudo roda blz... a única coisa que ´emperra´ é o sistema..

afffffff.... já ví que nem tem jeito... se bem... que tenho alguns selects monstros... mas necessários... mas até a conexão com o banco é lenta... demora uns 20 segundos para estabelecê-la..

vc tem idéia de como resolver este problema?????

me falaram sobre SOAP... mas o material do fórum é muito básico... e não conseguí realizar nenhuma melhora... como funciona este SOAP?????

OBS : programo .CLX


GOSTEI 0
Armando.boza

Armando.boza

13/04/2006

Colega... eu uso o VNC para acessar remotamente os micros na Filial... e roda muito rápido... a taxa de tranferência no túnel na cópia de arquivos é excelente... tudo roda blz... a única coisa que ´emperra´ é o sistema.. afffffff.... já ví que nem tem jeito... se bem... que tenho alguns selects monstros... mas necessários... mas até a conexão com o banco é lenta... demora uns 20 segundos para estabelecê-la.. vc tem idéia de como resolver este problema????? me falaram sobre SOAP... mas o material do fórum é muito básico... e não conseguí realizar nenhuma melhora... como funciona este SOAP????? OBS : programo .CLX


Partindo do principio, qual Firebird vc usa?

Qual o sistema operacional do servidor?

Firewall?

Vc poderia montar essas consultas MONSTROS em uma SP pra ficar mais rapido.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

Partindo do principio, qual Firebird vc usa?


Eu utilizo Firebird 1.5.3

Qual o sistema operacional do servidor?


Linux versão Kurumin 5.0

Firewall?


Firewall somente o próprio servidor......

Vc poderia montar essas consultas MONSTROS em uma SP pra ficar mais rapido.


Como posso fazer isso??????

Não manjo nada de Stored Procedures... não sei como usá-las no banco e nem como chamá - las no programa...

Como isso poderia aumentar a performance do Banco????


GOSTEI 0
Armando.boza

Armando.boza

13/04/2006

[quote:045397ba51=´armando.boza´] Partindo do principio, qual Firebird vc usa?


Eu utilizo Firebird 1.5.3

Qual o sistema operacional do servidor?


Linux versão Kurumin 5.0

Firewall?


Firewall somente o próprio servidor......

Vc poderia montar essas consultas MONSTROS em uma SP pra ficar mais rapido.


Como posso fazer isso??????

Não manjo nada de Stored Procedures... não sei como usá-las no banco e nem como chamá - las no programa...

Como isso poderia aumentar a performance do Banco????[/quote:045397ba51]

Bom, eu ja estou usando o Firebird 2.0 RC2 e estou muito contente com ele, vc deveria pensar sobre isso.

O Kurumin uma vez usei como servidor e não gostei muito pois a conexão ficava caindo e tinha um esquema de configuração para multiplas conexões.

Ja esperimentou desativar o Firewall do Kurumin pra testar? Vai no painel Clika-aqui e desativa ele só pra testar.

Agora, Stored Procedures não são coisas de 7 cabeças, eu mesmo aprendi muito sobre elas aqui mesmo no forum garimpando os posts.
Para usalas no delphi basta usar uma query comum tipo assim:

SELECT * FROM SUASTOREDPROCEDURE


Se a SP tiver parametros de entrada usa-se:

SELECT * FROM SUASTOREDPROCEDURE(:PARAM1,:PARAM2)


Todo o processamento é feito no banco de dados, com isso vc ganha em desempenho do sistema e em tráfego de dados na rede.


GOSTEI 0
Armando.boza

Armando.boza

13/04/2006

de .CLX não manjo nada, as vezes tem alguma coisa a ver nisso ai.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

Mas.... e para criá-las....?????? no BD

como faço???????

OBS : .CLX é o VCL sem as API´s do Windows... isto é... os componentes que usam a UNit Windows não são disponíveis em .CLX... é só isso que muda... o resto é tudo igual...


GOSTEI 0
Armando.boza

Armando.boza

13/04/2006

Mas.... e para criá-las....?????? no BD


Isso mesmo, elas vão direto no banco de dados.

Procura aqui no forum que tem de monte .... nosso amigo [b:97a77576cd]emerson.en[/b:97a77576cd] aqui do fórum manja muito.


GOSTEI 0
Cabelo

Cabelo

13/04/2006

[quote:6c41fb038b=´Cabelo´]Mas.... e para criá-las....?????? no BD


Isso mesmo, elas vão direto no banco de dados.

Procura aqui no forum que tem de monte .... nosso amigo [b:6c41fb038b]emerson.en[/b:6c41fb038b] aqui do fórum manja muito.[/quote:6c41fb038b]

armando.boza....

muito obrigado pela ajuda...!!!!!!


GOSTEI 0
POSTAR