Cuando abrir la coneccion con las bases de datos desde python?

Antonio Castro acastro en ciberdroide.com
Vie Oct 1 17:28:57 CEST 2004


On Fri, 1 Oct 2004, Chema Cortés wrote:

> On Thursday 30 September 2004 23:33, Ariel Nardelli wrote:
>
> > Mas que una pregunta es una cuestion de como usan ustedes las aperturas
> > y cierres de la coneccion a las bases de datos...
>
> Esta cuestión no tiene una respuesta clara; pero más que un problema de
> programación es un problema del dimensionamiento del servidor y de cómo se
> haga la conexión.
>
> Por lo general, no es recomendable realizar conexiones y desconexiones rápidas
> ya que perjudican el rendimiento del servidor. Los servidores suelen estar
> preparados para mantener abiertas varias conexiones simultáneas, manteniendo
> por cada conexión un sistema de "cachés" del que poco se beneficia si la
> conexión se cierra demasiado pronto.
>
> Por otro lado, aunque no tan importante, están los conectores (los módulos
> DB-API2 de python) que mantienen una caché de sentencias SQL que también
> desaparece al cerrar la conexión.
>
>
> Mi consejo es mantener abierta la conexión mientras sea necesaria, pero hay
> que tener en consideración que el servidor puede cerrar la conexión por
> "timeout". Suelen ser tiempos muy grandes, aunque es configurable por el
> administrador. Ésto hace que sea recomendable cerrar la conexión con la base
> de datos en los ratos que esté parado el programa (pe: en las introduciones
> de datos). Siempre dependerá un poco del juicio del programador.

Yo en C recuerdo que programaba el cierre de la conexion con atexit().
De esa forma al salir del programa bajo cualquier circunstancia salvo
la recepción de la señal KILL, el programa cerraba correctamente la
conexión. Mantenía todo el rato abierta la conexión pero es que en mi
caso el numero de conexiones siempre era muy pequeño. Supongo cerrar
la conexión para abrirla al poco tiempo solo está justificado si con eso
evitamos alcanzar un excesivo número de conexiones abiertas simultaneamente.

Supongo que lo suyo es hacer pruebas primero sin cerrar conexiones.

-- 
Un saludo
Antonio Castro

       /\     /\
         \\W//
        _|0 0|_
+-oOOO-(___o___)-OOOo---------------------+
| . . . . U U . Antonio Castro Snurmacher |
| . . . . . . . acastro en ciberdroide.com   |
+()()()---------()()()--------------------+




Más información sobre la lista de distribución Python-es