ASP와 Oracle 데이터베이스를 사용하여 개발된 원본 프로젝트가 있었습니다. 아래 코드를 사용하여 쿼리 문을 가져옵니다.
RS 설정 = Server.CreateObject("ADODB.Recordset")
RS.open에 의해 실행되는 SQL 문은 데이터베이스 연결 로직에서 2단계 구조를 갖고 있습니다. 상위 데이터를 순환할 때 각 상위 데이터에 포함된 하위 데이터 세트를 쿼리합니다.
strSQL = "상위 데이터를 쿼리하는 SQL 문"
RS.open SQL 문을 실행하고 데이터베이스 연결은
RS.EOF까지 수행됩니다.
strSQL2 = "하위 데이터를 쿼리하는 SQL 문"
RS2.open 실행할 SQL문, 데이터베이스 연결
RS2.닫기
RS.이동다음
고리
RS.닫기
하지만 Oracle 데이터베이스에서 SQL Server 데이터베이스로 전환한 후 로직은 변하지 않았지만 시간이 많이 바뀌었습니다. 원래 몇 초에서 50초 이상까지 두 개의 RecordSet이 중첩된 루프로 인해 발생하는 것으로 보입니다. 해결 방법은 배열을 사용하여 상위 데이터를 저장한 다음 RS.Close를 실행하고 배열을 반복하여 하위 데이터를 쿼리하는 것입니다.
이유는 잘 모르겠는데 조언 부탁드립니다. 감사해요.
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx