Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/11/2003, 07:45
alcarji
 
Fecha de Ingreso: mayo-2002
Mensajes: 66
Antigüedad: 23 años
Puntos: 0
Hola Haven:

Te comento un par de sugerencias.

Por una parte, el principal problema es que tienes varios bucles anidados (hasta 4 niveles de anidación). Ésto es de por sí costoso de "digerir" para el servidor.

Veo que todas las consultas se hacen sobre la misma tabla. Tal vez podría interesarte tener sólo 2 recordSets. Inicialmente obtienes todos los registros en ambos. Empiezas a recorrer uno de ellos cogiendo el ID del registro y lo utilizas en el otro recordSet para filtrar (ej: rs2.filter = "SUBID = " & rs1("ID").value). No sé si te servirá esta sugerencia, pues no sé qué es exactamente lo que quieres resolver, aunque por la pinta del código estás haciendo el recorrido típico de Categorías-subcategorías-subSubcategorías-elementos...

Por otro lado, tienes que dentro de cada bucle estás creando recordsets contínuamente (ej: set rs111=Server.CreateObject("ADODB.Recordset")). Habría que crear los recordsets fuera de los bucles.

También, sería muy conveniente que el campo SUBID de la tabla PRODUCTOS estuviese indexado. En teoría, los índices aceleran la búsqueda de registros coincidentes (aunque en la práctica, bajo ciertas condiciones, en ACCESS esta mejoría no sea tan apreciable).

Por último, te aconsejaría evitar en la medida de lo posible el uso indiscriminado de ``SELECT *" y que en su lugar utilizases ``SELECT <lista_de_campos_a_utilizar>", a no ser que vayas a usar todos los campos de la tabla.

Prueba a ver qué tal y ya nos cuentas..
__________________
Un saludo,

Alberto

Última edición por alcarji; 04/11/2003 a las 07:49