Был оригинальный проект, разработанный с использованием ASP и базы данных Oracle. Используйте приведенный ниже код, чтобы получить оператор запроса.
Установите RS = Server.CreateObject("ADODB.Recordset")
Оператор SQL, который будет выполняться RS.open, имеет двухуровневую структуру в логике подключения к базе данных. При циклическом просмотре родительских данных запрашивается дочерний набор данных, содержащийся в каждом родительском данных.
strSQL = "Оператор SQL для запроса родительских данных"
Оператор RS.open SQL должен быть выполнен, подключение к базе данных.
Выполнить До тех пор, пока RS.EOF
strSQL2 = "Оператор SQL для запроса дочерних данных"
Оператор RS2.open SQL, который необходимо выполнить, подключение к базе данных
RS2.Закрыть
RS.MoveNext
Петля
RS.Закрыть
Но после перехода с базы данных Oracle на базу данных SQL Server логика не изменилась, а вот время сильно изменилось. От исходных нескольких секунд до более чем 50 секунд кажется, что это вызвано вложенным циклом двух наборов записей. Решение состоит в том, чтобы использовать массив для хранения родительских данных, затем выполнить RS.Close, а затем пройтись по массиву для запроса дочерних данных.
Я не очень хорошо знаю причину, поэтому, пожалуйста, дайте мне несколько советов. Спасибо.
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx