Il y avait un projet original développé en utilisant ASP et en utilisant la base de données Oracle. Utilisez le code ci-dessous pour obtenir l'instruction de requête.
Définir RS = Server.CreateObject("ADODB.Recordset")
L'instruction SQL à exécuter par RS.open a une structure à deux niveaux dans la logique de connexion à la base de données. Lors de la boucle sur les données parent, l'ensemble de données enfant contenu dans chaque donnée parent est interrogé.
strSQL = "Instruction SQL pour interroger les données parent"
Instruction SQL RS.open à exécuter, connexion à la base de données
Do Until RS.EOF
strSQL2 = "Instruction SQL pour interroger les données enfants"
Instruction SQL RS2.open à exécuter, connexion à la base de données
RS2.FERMÉ
RS.MoveNext
Boucle
RS.Fermer
Mais après être passé de la base de données Oracle à la base de données SQL Server, la logique n'a pas changé mais le temps a beaucoup changé. Des quelques secondes d'origine à plus de 50 secondes, il semble que cela soit dû à la boucle imbriquée de deux RecordSets. La solution consiste à utiliser un tableau pour stocker les données parent, puis à exécuter RS.Close, puis à parcourir le tableau pour interroger les données enfants.
Je ne connais pas très bien la raison, alors donnez-moi quelques conseils. Merci.
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx