ASP と Oracle データベースを使用して開発されたオリジナルのプロジェクトがありました。 以下のコードを使用してクエリ ステートメントを取得します。
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open によって実行される SQL ステートメントは、データベース接続ロジックで 2 レベルの構造になっており、親データをループする際に、各親データに含まれる子データ セットがクエリされます。
strSQL = "親データをクエリする SQL ステートメント"
RS.open 実行する SQL ステートメント、データベース接続
Do until RS.EOF
strSQL2 = "子データをクエリする SQL ステートメント"
RS2.open 実行する SQL ステートメント、データベース接続
RS2.閉じる
RS.MoveNext
ループ
RS.閉じる
しかし、Oracle データベースから SQL Server データベースに切り替えた後、ロジックは変わっていませんが、時間は大きく変わりました。元の数秒から 50 秒を超えるまで、2 つの RecordSet のネストされたループが原因であると思われます。解決策は、配列を使用して親データを保存し、RS.Close を実行して、配列をループして子データをクエリすることです。
原因がよく分からないのでアドバイスをお願いします。ありがとう。
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx