Dúvidas sobre bd

6 respostas
A

Olá a todos, quanto tempo. :slight_smile:

Estou voltando com carga total os estudos de java, com o intuíto de definitivamente adota-lo como principal linguagem para o desenvolvimento de aplicativos de desktop.

Para aplicações de pequeno porte, tenho usado o hsqldb como banco de dados, e não tenho do que reclamar.

A única coisa que me deixa meio cabreiro, como vim do ambiente xBase, é o fato de arquivos temporários não serem gerados automaticamente. Por exemplo, em uma tabela de 1000 registros, um comando BROWSE se encarregava de gerenciar o que seria armazenado em memória, o que em arquivos temporários.

Minha dúvida é :

Devo armazenar resultados de pesquisa no banco de dados em objetos na memória da maquina local ( arrays, por exemplo ) ? Quanto efetivamente prejudicaria a performace de meus aplicativos, desktop pequeno porte ?
Como o garbage colector nesse caso trabalharia ao meu favor ?

Enfim, acho que o meu grande problema é ainda estar meio preso a filosofia xBase ( limitação de arrays, a velha máxima “evite usar a memória, use arquivos temporários” , etc. )

Peço a ajuda dos amigos mais experientes.

[ ]
Adriano

6 Respostas

_fs

Cara, depende muito do caso.

O tipo de dados que guardamos em memória no cliente (em ArrayLists) são aqueles pouco atualizados, mas muito utilizados dentro da aplicação, como conteúdo de comboboxes.

Que tipo de pesquisa?

E quanto ao garbage collector … não entendi o que quis dizer. Ele vai tirar da memória objetos não mais referenciados, só isso hehe

A

Olá.
No caso por exemplo de exibir o resultado de uma pesquisa ( vendas no ano, onde cada linha é uma venda, num total de mil vendas.

Isso em xBase, era tranquilo. Criava-se uma tabela temporária para exibir os dados e pronto, podia conter quantos registros fossem necessários e depois era só apaga-la.
Já no java : Vou armazenar isso em uma colection, certo ? A pergunta é : quanto é prejudicial a execução do sistema desktop uma colection deste tamanho ? O sistema não vai ficando pesadão ? A minha dúvida quanto ao Garbage Colector era justamente isso : Quando o usuário sair do módulo de pesquisa, esses mil registros vão sumir da memória ?

Esse exemplo é pra apenas uma pesquisa, mas imagine o caso de um sistema Desktop completão. Vou ter arrays para escolher clientes através do JTabele em vários pontos do sistema, trocentas combobox como você disse, etc.

A melhor maneira seria armazenar todas essas tabelas em colections ?

Valeu pela atenção !
Adriano
:smiley:

_fs

É, realmente, “trocentas” é um número grande.

Por que não faz o teste? Guarde 10 mil objetos do seu sistema numa coleção e observe o consumo de memória. Se for demais para os seus clientes, use o hsqlsdb.

A

Usar um banco de dados eu vou, de qualquer maneira.
A minha preocupação e armazenar os muitos resultados em memória, e ao mesmo tempo, entende? Como não encontrei nenhum tipo de “release”, para liberar essas colections da memória, e soube que o GC faz isso sozinho, e isso tudo é uma novidade pra mim, estou um pouco receoso.:slight_smile:

_fs

Sim, me referi ao banco de dados no cliente para armazenar o tipo de informação a que se referiu.

E sim, o GC faz isso sozinho.

Cara, só testando para saber se é necessária a dor de fazer sincronização com um banco local ou não.

A

ah, entendi. você diz usar o hsqldb para criar as tabelas temporarias locais, se for o caso… bom, vou fazer uns testes… valeu pelas dicas.

Criado 25 de maio de 2005
Ultima resposta 13 de jun. de 2005
Respostas 6
Participantes 2