Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabricio MF

Qual seu conselho?

Recommended Posts

Olá galera do IMasters! tudo bom?

 

Andei meio sumido ultimamente mas retornei ao .net e queria pedir o conselho de vocês pra seguinte questão.

 

Suponhamos que tenho um website onde é preciso acessar o banco de dados em todas ou aproximadamente 90% das paginas do website, nisso qual a melhor prática que devo ter no gerenciamento do banco de dados? seria manter o connection aberto a todo momento, abrir o connection usa-lo e fechar quando terminar em cada página, ou seria outro método?

 

No meu caso trabalho com MySQL, mas acredito que a "Boa Prática" sirva para todos os SGBDs.

 

Creio que esta dúvida não seja só minha, mas conto com a ajuda de vocês pois sou meio novo na plataforma .Net.

 

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara a resposta sobre conexões é: SEMPRE FECHE O MAIS RÁPIDO POSSÍVEL. Uma conexão não fechada pode acarretar com que outras conexões não consigam ser abertas, ou então o perigo maior é que estas não sejam fechadas, porém temos um dilema.

 

Se você abrir uma vez a conexão e fechá-la quando o usuário sair da pagina, ao invés de abrir e fechar a cada uso, você terá um menor uso de memória do servidor, ou seja, você poderá suportar uma quantidade um pouco maior de acessos simultâneos, mas como eu disse, uma conexão que está sempre aberta pode acarretar erros no sistema, então tome muito cuidado na hora de fazer este processo.

 

Por outro lado, se você abrir e fechar sempre que necessário, o uso de memória será maior, um numero maior de pings serão enviados ao servidor, logo você terá uma queda mais rápida suportando uma quantidade menor de usuários, porém os erros que acima comprometem o sistema desaparecem.

 

Meu conselho é: Abra a conexão, faça todas as funções necessárias logo no começo da página, como leitura de dados essenciais e etc, e depois feche esta conexão. Ai para cada ação que o USUÁRIO fizer, você abre e fecha uma apenas para aquela ação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,

 

Faz tempo que não trabalho com .Net, e posso estar falando muita bobagem, mas utilizando o ASP.NET MVC e o Entity Framework ainda é necessário controlar as conexões desta forma?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, sempre é necessário, o que o MVC faz é apenas dividir seu projeto em 3 camadas, mas isto não torna uma conexão não manejável, o mesmo ocorre com o EF, a única diferença é a facilidade em montar o DB, mas não em manejar suas conexões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta KhaosDoctor e desculpa pela demora.

 

Ainda não tenho muita experiência com o .Net, mas desde que conheci abandonei de vez o ASP Clássico e adotei esta ótima tecnologia que é o .Net.

 

Bom, neste caso então, pra ter uma forma mais organizada do código na conexão e desconexão, optei por criar uma namespace com os metodos que preciso de conexão e desconexão e quando necessário uso dentro da página somente a função.

 

Você que tem bem mais experiência que eu, acha que é uma boa maneira ou seria melhor de outra forma?

 

Novamente obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara é o que eu geralmente aconselho, crie um class Library (DLL) ou então crie só uma classe simples com todos os métodos que você possa usar para banco de dados, funções universais para executar NonQuery, Reader, Scalar e outras funções úteis como preenchimento de DataSet e DataTable, você também pode criar funções para o manejamento de conexões e ConStrings.

 

Ou, se preferir, use o Lotus... Criei esse mini-framework para esses casos, ele ainda está em desenvolvimento, mas esta parte de banco de dados já está completa, se quiser baixar só olhar aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi.

 

Muito obrigado KhaosDoctor, eu não havia utilizado esse forum ainda, mais depois desta cooperação que recebi de vocês, com certeza vou frequentar constantemente aqui, não só na area .Net mais também Delphi e algumas outras.

 

Muito obrigado pela ajuda, me ajudou muito mesmo ;)

 

Não sei como é o esquema daqui mais, o tópico pode ser fechado!

 

Feliz ano novo para todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabricio,

 

Você não falou nada sobre sua aplicação, acessar o BD em 90% das páginas não diz nada na prática.

 

Qual o volume de dados nessas páginas?

São essencialmente consultas?

Acontecem atualizações com muita frequência?

É uma hospedagem compartilhdada, dedicada ou Intranet?

 

Seja bem vindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oba Prog! me desculpa a demora não tinha visto a mensagem.

 

Bom, no atual projeto que estou fazendo na maior parte é apenas consulta, é um site pra igreja no qual tem uma parte com as palavras que serão ministradas, mas ai é em uma parte exclusiva só para isso, e claro um local para também alguem postar essa palavras.

 

Mas a minha maior dúvida surgiu quando eu fiz um E-Comerce em ASP Clássico, e até hoje as vezes ele me da dor de cabeça por que usei um banco de dados em uma variavel Session, coisa que me arrependi muito de ter feito. E neste caso são feitas constantes consultas de produtos principalmente.

 

No meu caso uso hospedagem compartilhada, daquelas que agente só tem acesso ao painel de controle e por FTP, futuramente pretendo alugar um servidor dedicado virtual, mas ai já é pra um projeto que tenho a muito tempo meu mesmo.

 

Obrigado pela atenção Prog.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.