Como abrir una conexión a la BD en gobal. Asa

Si fueras tan amable, necesito ver un ejemplo de como puedo (y ante todo, si puedo...), abrir una conexión a mi base de datos Access en el inicio de la aplicación (no de la sesión, sino de la aplicación), para que las diferentes sesiones que se vayan abriendo reutilicen esa conexión, sin necesidad de abrir una nueva cada vez.
Me gustaría también, si lo anterior es posible, conocer las desventajas que, a tu criterio, tiene esta metodología.
1

1 Respuesta

99.500 pts.
Eso que me pides es del todo desaconsejable.
¿Los motivos? La cantidad de recursos que consume. Ten en cuenta que cada usuario tendría en su sesión como variable de sesión la conexión a la bbdd -créeme, ni siquiera microsoft lo aconseja. Si te pasas por la web de www.activeserverpages.com veras que allí tampoco lo recomiendan. No es aconsejable porque estarías metiendo un objeto en la variable de sesión y eso consume muchos muchos recursos (multiplica por cientos de usuarios y veras como 300ks por ejemplo se convierten en muchos megas).
Ademas, ASP tiene connection pooling. Esto significa que hay un pool de conexiones que el ODBC va capturando segun se necesiten, y la mayoria de las veces no hay que abrir la conexion en si, sino que el ODBC utiliza una ya abierta -todo esto pasa de forma transparente-
Tu lo que me dices es que en cada script que uso dentro de mi sitio, ¿tengo qué hacer el open de la conexión a la base de datos?
Pensé que eso consumía más recursos que lo otro.
Estoy intentando hacer un sitio para intercambiar banners, y me encuentro con el problema de que, cada página que se afilia, al ser invocada invoca a un script que tienen que hacer una consulta y algunos inserts en la BD. Esto me esta saturando el sitio. Pensé en esta opción que te contaba como una solución, pero tal vez me puedas aconsejar algo más eficiente.
Saludos
alejandro
¿Qué tipo de base de datos estas utilizando? ¿Access o SQL Server? Eso tal vez me ayude a respodenrte.
Uso Access
Me preguntaba coom estas haciendo las insercciones en la base de datos. La forma más rápida y sencilla de hacerlo es con sentencias SQL de Inserts y Updates directamente. Si usas el ODBC de otro modo el sistema se ralentizara. Asimismo, cuando hagas los selects, si pones los nombres de los campos que vas a seleccionar (en lugar de *) sera más rapido. También si quieres arañar milisegundos puedes referirte a los campos por su posición en lugar de por su nombre (por ejemplo rs (0) sin necesidad de rs. Fieldnames ) es más rapido.
De todos modos creo que el problema esta en la base de datos que utilizas. Access esta bien cuando hay pocas conexiones y tu web va a tener poca carga. En el caso que comentas -intercambio de banners- el numero de conexiones es bastante alto, y la base de datos se resiente. Para ese tipo de aplicaciones te recomiendo que uses el SQL Server. No se ralentizara nada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas