Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/09/2010, 17:10
aserey
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Mi servidor va lento... ¿sessiones?

Cita:
Iniciado por Subotai Ver Mensaje
Bueno te voy a dejar la misma respuesta que le deje a DelaVega te viene como anillo al dedo

uff acabo de leer el mensaje , igual me he extendido un poquito.... bueno ahi te va:
Cada vez que abres un recordset, lo que estas haciendo es crear un conjunto de variables (como un vetor) en memoria, si no cierras el Rcset estarán e tu memoria hasta que se cierre la conexión con la bd.
Hay maneras de optimizar este uso de la memoria.
Lo mas sano es utilizar el menor espacio de memoria posible, es decir optimizar el uso de la memoria usando el menor numero de variables posibles, pero claro, cuando decimos memoria, a que tipo de memoria nos referimos?
¿donde se ejecuta una pagina ASP?en el servidor, ta claro, al cliente solo le llega codigo html, entonces hay que darse cuenta de que todas las variables que uses estaran en el servidor, pero un servidor es algo mas complejo.
Si le preguntas a un licenciado en informatica te dira que un servidor es un proceso , pero ese proceso se ejecuta en una maquina y en esa maquina cuantos procesos hay? y a donde quiero llegar con toda esta parrafada, pues que las bases de datos no tienen memoria infinita (al menos en bds del tipo SQL Server,Informix...y si nos metemos en Oracle eso es todo un arte!! Access no tengo ni idea) sino que tienen un espacio maximo asignado (el resto de la memoria RAM es para el uso de los demas procesos, ya sean otras bds, como procesos de sist. operativo como otra aplicacion que se te ocurra) y cuando ese espacio se llena comenzará a paginar los datos que no le entran en la RAM y los mandará a disco, entoces todo ira mas lento .
Asi que si en tu pagina creas un monton de recordsets para cada consulta por simple que sea y los mantienes abiertos hasta que se termina de cargar la pagina, el servidor "sufre" y si tod@s l@s programadores/as le hacemos sufrir pues...ira mas lento que el caballo del malo y eso no nos interesa na de na .
Por lo tanto, la idea es que todo el espacio de memoria que necesitemos utilizar sea utilizado el menor tiempo posible Y QUE NO ESTE DUPLICADO JAMAS.
Asi que mi consejo es que cada vez que necesites usar recordsets utilices Getrows (para dejar los valores del recordset en un vector normal y corriente)ya que tendras los mismos datos que ocupan el mismo tamaño en memoria pero...no en el espacio de memoria asignado a la bd sino en el espacio general que por norma general suele ser mucho mayor, es decir,todas tus variables las gestionara el sistema operativo (que POR NORMA GENERAL suelen gestionar mejor que los motores de bds) y asi es menos provable que acaben paginadas en disco.
Pero claro si hicieramos esto con todos los recordsets que usemos, habra un precioso espacio de memoria reservado a la bd sin usar, asi que lo mejor es escoger que recordset va a parar al ambito de memoria general y cual se queda en el ambito de la BD.
Una buena opcion es dejar en el ambito de la Bd los mas "generales" a lo que necesitas acceder muchas veces a lo largo de tu Aplicacion Web.
Esta es una manera de "ayudar" al servidor, es decir, a la maquina donde reside el servidor, de esta manera las cosas fucionaran menos peor .
No se si me he dejado alguna cosilla pero no nos vamos a complicar mas todavia, no? jejeje si me he equivocado en algo por favor avisadme, es un tema que me interesa muchiiiiiismo.
agur
hola rengo un problema partacido toda mi pagina funciona muy bien pero cuando comienzo a gregar mas registro a la base de datos la lectura d ela pagina se vuelve mas lenta alñ punto de votar al servidor la pagina busca informacion de productos en la base de datos y la base tiene un millon trecientos registro cual es l problema memoria ran prosesados ojala me puedan ayudar