Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2004, 22:37
Avatar de trasgukabi
trasgukabi
 
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 7 meses
Puntos: 18
velocidad de carga de página dependiendo de sentencia SQL

Hola tengo esta cadena SQL:
Código:
sSQL="SELECT Articulos.EAN, Editoriales.Nombre, Secciones.Nombre, Articulos.PrecioSantosOchoaEuros, Secciones.CodSuperSeccion,Articulos.Autor, Articulos.Titulo FROM (Editoriales INNER JOIN Articulos ON (Editoriales.CodPais = Articulos.CodPais) AND (Editoriales.CodEditorial = Articulos.CodEditorial)) INNER JOIN Secciones ON Articulos.CodSeccion = Secciones.CodSeccion WHERE (((Articulos.PrecioSantosOchoaEuros)>0) AND ((Secciones.CodSuperSeccion) "&superseccion&"') AND ("&busca&" Like '%"+request.form("textobusqueda")+"%')) order by articulos.titulo"
y con el recordset resultante saco todo lo que necesito en la página.

He probado a optimizarlo un poco y he hecho tres conexiones: una para articulos:
Código:
sSQL="select ean,titulo,autor,preciosantosochoaeuros,codpais,codeditorial,codseccion from articulos where (((Articulos.Autor) Like '%"+request.form("textobusqueda")+"%') OR ((Articulos.Titulo) Like '%"+request.form("textobusqueda")+"%'))"
otra para secciones:
Código:
ssql2="select nombre from secciones where codseccion='"&rs("codseccion")&"'"
y otra para editoriales:
Código:
ssql="select nombre from editoriales where codpais='"&rs("codpais")&"' and codeditorial='"&rs("codeditorial")&"'"
con sus respectivos recordsets.

En local, tarda menos el segundo tipo de carga, pero en el servidor web(la base de datos está en un tercer servidor) lo que tarda menos es el primer tipo.

Ante los resultados, es obvio que lo que mejor va es un recordset (5 sgs en local, 12 en servidor), pero me mosquea que en local vayan mejor los tres recordsets (3 segundos en local, 15 en servidor)

Y yo me pregunto: ¿Qué os parece?, porque mucha lógica no tiene, no?