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?