原有一個項目,使用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,再循環數組來查詢子級數據。
自己並不是很清楚其中的原因,請大家多多指點。謝謝。