DESCARREGAR MEMORIA-URGENTE
Colegas,
Criei um aplicativo para executar dataminning em um bco oracle e copiara o resultado para um access.
Ele carrega os dados em conjuntos de registros, em média 70.000. Carrega os dados em um datagrid e depois copia 1 a 1 para o banco.
Observei que começa a ficar mais lento após a 3a consulta, pois fiz um loop para executar em intervalos de tempos que totalizarão próximo de 78 vezes.
Bom, gostaria de saber se tem como liberar memória sempre que executar uma interação do loop, pois acredito que deve estar havendo algum acúmulo de alocação.
Criei um aplicativo para executar dataminning em um bco oracle e copiara o resultado para um access.
Ele carrega os dados em conjuntos de registros, em média 70.000. Carrega os dados em um datagrid e depois copia 1 a 1 para o banco.
Observei que começa a ficar mais lento após a 3a consulta, pois fiz um loop para executar em intervalos de tempos que totalizarão próximo de 78 vezes.
Bom, gostaria de saber se tem como liberar memória sempre que executar uma interação do loop, pois acredito que deve estar havendo algum acúmulo de alocação.
Por acaso vc chegou a monitorar?
Experimenta trocar o DATAGRID por um ADO RECORDSET e, a cada final de carga do ORACLE e descarga no ACCESS, você fecha o RECORSET e [Ô]desistancia[Ô] o mesmo
Com uma ou com outra solução, o VB e o Windows precisarão liberar memória de tempos em tempos mas, como vc [Ô]desistancia[Ô] ele sempre, entre uma operação e outra, o VB/Windows podem ir trabalhando na reorganização da memória.
Porém, mesmo que o [Ô]garbage colector[Ô] do VB/Windows rode entre os acessos, se perceber ainda uma grande demora, tente mudar o range de registros lidos em cada acesso... Às vezes fica MUITO MAIS RÃPIDO, apesar de acessar mais vezes.
Private Sub Processo
Dim rs as new adodc.recorset
... cria a lógica de leitura e gravação
rs.close
set rs=nothing
end sub
Com uma ou com outra solução, o VB e o Windows precisarão liberar memória de tempos em tempos mas, como vc [Ô]desistancia[Ô] ele sempre, entre uma operação e outra, o VB/Windows podem ir trabalhando na reorganização da memória.
Porém, mesmo que o [Ô]garbage colector[Ô] do VB/Windows rode entre os acessos, se perceber ainda uma grande demora, tente mudar o range de registros lidos em cada acesso... Às vezes fica MUITO MAIS RÃPIDO, apesar de acessar mais vezes.
Tópico encerrado , respostas não são mais permitidas