Gestón de Conexiones

13/02/2006 - 23:53 por Mario Vázquez | Informe spam
Hola,

Para un sitio web susceptible de recibir muchas visitas, qué opción sería
preferible para conectarse a un servidor de Sql-Server2000:

- Abrir una conexión para cada nuevo cliente y no cerrarla hasta que ésta
termine.
- Abrir conexiones sólo cuando haya que acceder a la base de datos y
cerrarlas inmediatamente.
- Compartir objetos de conexión entre sesiones.
- ?

Gracias por cualquier sugerencia,
mvr.

Preguntas similare

Leer las respuestas

#6 Mario Vázquez
14/02/2006 - 09:05 | Informe spam
Gracias por la respuesta,
¿Qué mecanismos ofrece VS2005 para trabajar con caché?

Saludos,
MVR


"Edgardo Rossetto" escribió en el mensaje
news:
Mario Vázquez wrote:
Hola,

Para un sitio web susceptible de recibir muchas visitas, qué opción sería
preferible para conectarse a un servidor de Sql-Server2000:

- Abrir una conexión para cada nuevo cliente y no cerrarla hasta que ésta
termine.
- Abrir conexiones sólo cuando haya que acceder a la base de datos y
cerrarlas inmediatamente.
- Compartir objetos de conexión entre sesiones.
- ?

Gracias por cualquier sugerencia,
mvr.






Para mi lo mejor es abrirlas solo cuando se accede, y cerrarlas
inmediatamente.

Si usas cache directamente ni se conecta a la db.

Edgardo Rossetto | Mendoza, Argentina
Mi blog sobre ASP.NET: http://edgardorossetto.net
Respuesta Responder a este mensaje
#7 Miguel Egea
14/02/2006 - 12:48 | Informe spam
Así es, además hará por tí otra cosa, que es ejecutar un sp_resetconnection
para evitar que "basurilla" que otra conexión haya p odido dejar afecte a
como funciona tu aplicación.

En la web de eladio rincón tienes detalles de como funciona el app pooll

http://siquelnet.etraducciones.com/...p;Articulo1.xml

Es un muy buen artículo.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"



"Mario Vázquez" wrote in message
news:
¿Quién es el?
:-)
Si es Sql-Server, ¿debo entender que al hacer new
SqlConnection(strCnn).Open() no se abrirá realmente una nueva conexión si
existe alguna disponible?

Gracias


"Miguel Egea" escribió en el mensaje
news:uy$
En un entorno web, puedes abrir y cerrar. El solo crea el pool de
conexiones y si las cadenas de conexión son iguales, el reaprovecha esa
conexión.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced
education and solutions for the entire Microsoft database platform"

"Mario Vázquez" wrote in message
news:
Hola,

Para un sitio web susceptible de recibir muchas visitas, qué opción
sería
preferible para conectarse a un servidor de Sql-Server2000:

- Abrir una conexión para cada nuevo cliente y no cerrarla hasta que
ésta
termine.
- Abrir conexiones sólo cuando haya que acceder a la base de datos y
cerrarlas inmediatamente.
- Compartir objetos de conexión entre sesiones.
- ?

Gracias por cualquier sugerencia,
mvr.











Respuesta Responder a este mensaje
#8 Guillermo Roldan
14/02/2006 - 12:52 | Informe spam
Yo trabajo en VS2003, y desde ASP.Net me conecto y desconecto para cada
acceso a SQL Server. Si en una página ejecuto tres procedimientos
almacenados, mi código se conectará tres veces por esa sóla página.

Como la cadena de conexión es siempre la misma, la teoría dice que se
utilizan pooles de conexiones de forma implícita (no he hecho ningún estudio,
pero tampoco he tenido problemas). La cadena de conexión la guardo sólo en el
WebConfig, para que al cambiarla sólo tenga que modificarla en un sitio, y
además me aseguro que es exactamente la misma para aprovechar el pooling.

En el caso del menú que tengo en el lateral izquierdo (y otros casos como la
cabecera y el pié de las páginas), que para su procesamiento requiere varias
llamadas a la BBDD, una de las cuales realiza un right outer join entre dos
tablas, he preparado un user control, y utilizo el Output caché con un tiempo
alto, para que no se conecte a la BBDD (obviamente, el menú no cambia salvo
muy rara vez). También uso OutputCache

También tengo la constumbre de que toda llamada a la BBDD se limita a
ejecutar un procedimiento almacenado, y nunca ejecuto una consultas así "a
pelo".



"Mario Vázquez" wrote:

Hola,

Para un sitio web susceptible de recibir muchas visitas, qué opción sería
preferible para conectarse a un servidor de Sql-Server2000:

- Abrir una conexión para cada nuevo cliente y no cerrarla hasta que ésta
termine.
- Abrir conexiones sólo cuando haya que acceder a la base de datos y
cerrarlas inmediatamente.
- Compartir objetos de conexión entre sesiones.
- ?

Gracias por cualquier sugerencia,
mvr.




Respuesta Responder a este mensaje
#9 Maxi
14/02/2006 - 15:02 | Informe spam
Las manejo siempre en los Sp's, nunca desde la aplicacion


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Mario Vázquez" escribió en el mensaje
news:
¿Y cómo gestionar las transacciones bajo este esquema de funcionamiento?

Gracias


"Maxi [MVP]" escribió en el mensaje
news:
Hola, yo tengo una sola conexion que trabaja contra el Pool, no abro por
cada usuario en un entorno Web una conexion y trato de compartirla


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Mario Vázquez" escribió en el mensaje
news:
Hola,

Para un sitio web susceptible de recibir muchas visitas, qué opción
sería
preferible para conectarse a un servidor de Sql-Server2000:

- Abrir una conexión para cada nuevo cliente y no cerrarla hasta que
ésta
termine.
- Abrir conexiones sólo cuando haya que acceder a la base de datos y
cerrarlas inmediatamente.
- Compartir objetos de conexión entre sesiones.
- ?

Gracias por cualquier sugerencia,
mvr.











Respuesta Responder a este mensaje
#10 Miguel Egea
14/02/2006 - 15:15 | Informe spam
En la mayoria de las ocasiones las buenas prácticas obligan a hacerlo desde
ambos puntos de vista. Más asú nen sistemas con arquitecturas complejas que
necestien distintos servicios y transacciones distribuidas. No hay ningún
problema en anidar transacciones. Más aún incluso aunque tuvieses un agujero
en tu aplicación, el sp_resetconnection que ejecuta el propio connection
pool cuando te da una conexión solventaría ese problema.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"

"Maxi" wrote in message
news:
Las manejo siempre en los Sp's, nunca desde la aplicacion


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Mario Vázquez" escribió en el mensaje
news:
¿Y cómo gestionar las transacciones bajo este esquema de funcionamiento?

Gracias


"Maxi [MVP]" escribió en el mensaje
news:
Hola, yo tengo una sola conexion que trabaja contra el Pool, no abro por
cada usuario en un entorno Web una conexion y trato de compartirla


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Mario Vázquez" escribió en el mensaje
news:
Hola,

Para un sitio web susceptible de recibir muchas visitas, qué opción
sería
preferible para conectarse a un servidor de Sql-Server2000:

- Abrir una conexión para cada nuevo cliente y no cerrarla hasta que
ésta
termine.
- Abrir conexiones sólo cuando haya que acceder a la base de datos y
cerrarlas inmediatamente.
- Compartir objetos de conexión entre sesiones.
- ?

Gracias por cualquier sugerencia,
mvr.















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida