原有一个项目,使用ASP开发,使用Oracle数据库 。 使用下面的代码来获取查询语句。
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open 所要执行的SQL语句, 数据库连接
逻辑中存在一个两级的结构,在对父级数据进行循环的时候查询到每一条父级数据所包含的子级数据集合。
strSQL = "查询父级数据的SQL语句"
RS.open 所要执行的SQL语句, 数据库连接
Do Until RS.EOF
strSQL2 = "查询子级数据的SQL语句"
RS2.open 所要执行的SQL语句, 数据库连接
RS2.CLose
RS.MoveNext
Loop
RS.Close
但是从Oracle数据库转到SQL Server数据库以后,逻辑没有变化但是时间却有了很大的变化。从原来的几秒变成了五十多秒,感觉是两个RecordSet的嵌套循环导致。解决方法是使用一个数组来存储父级数据,然后执行RS.Close,再循环数组来查询子级数据。
自己并不是很清楚其中的原因,请大家多多指点。谢谢。
本文作者: