Olá, estou implementando um método em java que pesquisa no banco de dados sqlite, e “joga” esses dados para um Resultset, ai coloco tudo num arraylist e o método retorna esse arraylist, faço isso pois preciso fechar o connection com o banco quando terminar o método, assim não posso retornar o resultset o método funciona bem. Minha dúvida é, o que ocupa mais memoria ram, o resultset ou uma arraylist? É viável usar um arraylist para armazenar os dados para manipulação? Existe a possibilidade de uma pesquisa no banco de dados que ocupe toda a memoria ram?
Resultset na memoria Ram
E
4 Respostas
1 like
Qual é o seu ambiente de desenvolvimento para ter toda essa preocupação com memória ?
2 likes
- Um Resultset normalmente ocupa menos memória que um Arraylist, porque os dados não estão realmente todos dentro do Resultset. Um Resultset é um objeto que está conectado ao banco e que pode ser configurado de forma a carregar os dados em blocos. Porém, em alguns cenários, o driver pode decidir que o Resultset deve abrir um cursor do lado do cliente e carregar todos os resultados nesse cursor.
- Sim, é viável desde que você opere com quantidades “normais” de dados. Se você quiser carregar 2 bilhões de registros em um Arraylist vai ser complicado.
- Sim, depende de quantos registros a pesquisa irá retornar.
E
1 like
Esmiralha, valeu, entendi o funcionamento do Resultset , vou tentar fazer o retorno do método com Resultset, valeu mesmo.
2 likes
Eduardo, importante você entender que o Resultset mantem uma conexão aberta com o banco de dados.
Eu não retornaria Resultset a menos que fosse um caso muito específico.
Criado 5 de junho de 2016
Ultima resposta 6 de jun. de 2016
Respostas 4
Participantes 3
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo SQL: Uma abordagem para bancos de dados Oracle Por Eduardo Goncalves — Casa do Codigo