Rendimiento

07/03/2006 - 13:29 por Aurelio | Informe spam
Hola.

Tengo una aplicacion Web .Net. En una de mis páginas, muestro un catalogo de
productos. Para realizar la búsqueda de los productos, tengo dos opciones:
-La primera, cargar todos los atributos del producto directamente a través
de la consulta, es decir, haciendo un select a varias tablas: "select
campo1,campo2,. from productos,categorias,imagenes,categorias_productos
where ..".
-La otra opción, es cargar en una primera consulta unos cuantos datos clave,
como la referencia del producto, con un select más sencillo: "select
referencia from Productos where...". Una vez recuperada la referencia de
cada producto, lanzaría desde código consultas a la al resto de las tablas a
por los demás atributos (imagenes, categorias, etc).

¿Alguien sabría decirme cual de las dos opciones me ofrese un mejor
rendimiento?. No se si merece la pena relizar una sola conexión a la Base de
Datos lanzando una consulta pesada., o por el contrario, realizr muchas
conexiones pero con select más simples y rápidos.


Gracias.
 

Leer las respuestas

#1 eordoper
07/03/2006 - 18:00 | Informe spam
Pues depende de la arquitectura que tengas.

Es decir, qué tipo de máquinas están montadas, cómo se distribuyen
las aplicaciones web y base de datos. Qué soft tienes montado. Desde
dónde se realizan las consultas (cliente, servidor aplicaciones,
llamada a procedimientos almacenados...)

Además de saber si es posible almacenar la sesión de conexión a la
base de datos, para no tener más que recuperarla cuando la necesites,
sin tener que estar iniciandola y cerrandola cada vez que te conectes y
desconectes.

No es una respuesta sencilla la que se te puede dar, sin más datos de
la arquitectura.

Como indicaciones generales en un sistema Cliente/Servidor, con una
única máquina para Servidor Web y Base de Datos (es decir, algo
"casero"), sin muchas conexiones desde cliente, podría utilizarse la
opción 2.

En el caso de un sistema accedido desde Internet, con un volúmen
grande de conexiones y una máquina no muy grande... quizá intentaría
manejar RecordSet desconectados, con los datos obtenidos con la opción
1, porque no va a haber mucha actualización de los datos en la base de
datos y así dejas libre el servidor para otras operaciones... p.ej.
tramitación de pedidos ;-)

Mejor busca información de "Buenas prácticas de diseño Web"
p.ej. http://www.webstyleguide.com/

Suerte

Preguntas similares