原有一個項目,使用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,再循環數組來查詢子級數據。
自己並不是很清楚其中的原因,請大家多指點點子。謝謝。
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx