Es gab ein Originalprojekt, das mit ASP und einer Oracle-Datenbank entwickelt wurde. Verwenden Sie den folgenden Code, um die Abfrageanweisung abzurufen.
Setze RS = Server.CreateObject("ADODB.Recordset")
Die von RS.open auszuführende SQL-Anweisung weist in der Datenbankverbindungslogik eine zweistufige Struktur auf. Beim Durchlaufen der übergeordneten Daten wird der in den einzelnen übergeordneten Daten enthaltene untergeordnete Datensatz abgefragt.
strSQL = „SQL-Anweisung zum Abfragen übergeordneter Daten“
RS.open SQL-Anweisung, die ausgeführt werden soll, Datenbankverbindung
ausführen Bis RS.EOF
strSQL2 = „SQL-Anweisung zum Abfragen untergeordneter Daten“
RS2.open Auszuführende SQL-Anweisung, Datenbankverbindung
RS2.Schließen
RS.MoveNext
Schleife
RS.Schließen
Aber nach dem Wechsel von der Oracle-Datenbank zur SQL Server-Datenbank hat sich an der Logik nichts geändert, aber die Zeit hat sich stark verändert. Von den ursprünglichen wenigen Sekunden bis zu mehr als 50 Sekunden scheint es, dass dies durch die verschachtelte Schleife zweier RecordSets verursacht wird. Die Lösung besteht darin, ein Array zum Speichern der übergeordneten Daten zu verwenden, dann RS.Close auszuführen und dann das Array zu durchlaufen, um die untergeordneten Daten abzufragen.
Ich kenne den Grund nicht genau, also geben Sie mir bitte einen Rat. Danke.
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx