Hubo un proyecto original desarrollado usando ASP y usando base de datos Oracle. Utilice el siguiente código para obtener la declaración de consulta.
Establecer RS = Server.CreateObject("ADODB.Recordset")
La instrucción SQL que ejecutará RS.open tiene una estructura de dos niveles en la lógica de conexión de la base de datos. Al recorrer los datos principales, se consulta el conjunto de datos secundarios contenidos en cada dato principal.
strSQL = "sentencia SQL para consultar datos principales"
Sentencia SQL RS.open que se ejecutará, conexión a la base de datos
Hacer hasta RS.EOF
strSQL2 = "sentencia SQL para consultar datos secundarios"
RS2.open sentencia SQL a ejecutar, conexión a base de datos
RS2.Cerrar
RS.MoverSiguiente
Bucle
RS.Cerrar
Pero después de cambiar de la base de datos Oracle a la base de datos SQL Server, la lógica no ha cambiado pero el tiempo ha cambiado mucho. Desde los pocos segundos originales hasta más de 50 segundos, parece que es causado por el bucle anidado de dos RecordSets. La solución es usar una matriz para almacenar los datos principales, luego ejecutar RS.Close y luego recorrer la matriz para consultar los datos secundarios.
No sé muy bien el motivo, así que por favor dame algún consejo. Gracias.
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx