原有一個項目,使用asp開發(fā),使用Oracle數(shù)據(jù)庫 。 使用下面的代碼來獲取查詢語句。
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open 所要執(zhí)行的SQL語句, 數(shù)據(jù)庫連接
邏輯中存在一個兩級的結(jié)構(gòu),在對父級數(shù)據(jù)進行循環(huán)的時候查詢到每一條父級數(shù)據(jù)所包含的子級數(shù)據(jù)集合。
strSQL = "查詢父級數(shù)據(jù)的SQL語句"
RS.open 所要執(zhí)行的SQL語句, 數(shù)據(jù)庫連接
Do Until RS.EOF
strSQL2 = "查詢子級數(shù)據(jù)的SQL語句"
RS2.open 所要執(zhí)行的SQL語句, 數(shù)據(jù)庫連接
RS2.CLose
RS.MoveNext
Loop
RS.Close
但是從Oracle數(shù)據(jù)庫轉(zhuǎn)到SQL Server數(shù)據(jù)庫以后,邏輯沒有變化但是時間卻有了很大的變化。從原來的幾秒變成了五十多秒,感覺是兩個RecordSet的嵌套循環(huán)導致。解決方法是使用一個數(shù)組來存儲父級數(shù)據(jù),然后執(zhí)行RS.Close,再循環(huán)數(shù)組來查詢子級數(shù)據(jù)。
自己并不是很清楚其中的原因,請大家多多指點。謝謝。
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx
新聞熱點
疑難解答