Conexiones con el DBMS

04/09/2007 - 18:47 por Javier Lozano | Informe spam
Saludos Compañeros

Quisiera abrir un debate que me(nos) ayude a entender los pros y los contras
de como mantener una conexion a la base de datos, segun tengo entendido,
podria usar uno de estos tres metodos:

1- Mantener la conexion abierta todo el tiempo que este activa mi app
cliente.
2- Abrir un conexion, realizar la "conversacion" con el DBMS, cerrar la
conexion
3- Usar un pool de conexiones

Dada mi poca experiencia en el tema, iniciaria el debate preguntando: Cual
de estos (u otros) metodos consideran que es el adecuado?

Javier Lozano
Lima-Peru
 

Leer las respuestas

#1 Alberto Poblacion
04/09/2007 - 20:08 | Informe spam
"Javier Lozano" wrote in message
news:
Quisiera abrir un debate que me(nos) ayude a entender los pros y los
contras de como mantener una conexion a la base de datos, segun tengo
entendido, podria usar uno de estos tres metodos:

1- Mantener la conexion abierta todo el tiempo que este activa mi app
cliente.
2- Abrir un conexion, realizar la "conversacion" con el DBMS, cerrar la
conexion
3- Usar un pool de conexiones

Dada mi poca experiencia en el tema, iniciaria el debate preguntando: Cual
de estos (u otros) metodos consideran que es el adecuado?



En mi opinión el más adecuado es el 3, teniendo en cuenta que en .Net
esto ocurre automáticamente cuando usas el método 2. Me explico, cuando
abres una conexión, con su configuración predeterminada, primero se busca en
el pool y si existe se usa. Sino, se abre una nueva. Se usa, y cuando la
cierras, no se cierra de verdad sino que en realidad se devuelve al pool.
Por lo tanto, cuando abres y cierras conexiones como indicas en el punto 2,
en realidad no estás abriendo y cerrando, sino que se toman y se devuelven
al pool, lo cual es una operación muy rápida.
Usarlas de esta forma tiene la ventaja de que el programa solo "ocupa"
una conexión del servidor durante el tiempo en que realmente la está usando,
frente al caso 1 en que la conexión se ocupa todo el rato que el programa
está en marcha. Usando el pool se logra que en un entorno multiusuario el
número de conexiones demandadas del servidor sea menor que el de programas
cliente que están en marcha, favoreciendo la escalabilidad del sistema en su
conjunto.

Preguntas similares