Houve um projeto original desenvolvido em ASP e banco de dados Oracle. Use o código abaixo para obter a instrução de consulta.
Definir RS = Server.CreateObject("ADODB.Recordset")
A instrução SQL a ser executada por RS.open possui uma estrutura de dois níveis na lógica de conexão do banco de dados. Ao percorrer os dados pai, o conjunto de dados filho contido em cada dado pai é consultado.
strSQL = "Instrução SQL para consultar dados pai"
Instrução SQL RS.open a ser executada, conexão com o banco de dados
Do Until RS.EOF
strSQL2 = "Instrução SQL para consultar dados filho"
Instrução SQL RS2.open a ser executada, conexão com o banco de dados
RS2.CLose
RS.MoveNext
Laço
RS.Fechar
Mas depois de mudar do banco de dados Oracle para o banco de dados SQL Server, a lógica não mudou, mas o tempo mudou muito. Dos poucos segundos originais até mais de 50 segundos, parece que isso é causado pelo loop aninhado de dois RecordSets. A solução é usar um array para armazenar os dados pai, executar RS.Close e percorrer o array para consultar os dados filho.
Não sei muito bem o motivo, então, por favor, me dê alguns conselhos. Obrigado.
http://blog.csdn.net/dutguoyi/archive/2007/03/18/1532924.aspx