Go Back   UseSrv Message Forum > Italiano > Computers - Italiano > Java - Italiano
 

 
Thread Tools Display Modes
  #1  
Old 07-15-2008
Claudio Di Vita
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

Il Fri, 29 Aug 2003 15:39:29 +0200, John Smith ha scritto :

> Ho una JTable che dovrebbe contenere i risultati di una query. Il
> problema e' che quando il numero di dati e' molto elevato l'oggetto
> Vector utilizzato dal DefaultTableModel della Jtable che contiene i dati
> va logicamente in OutOfMemoryError quando eseguo troppi inserimenti.


> Eppure devo fare in modo che l'utente possa scorrere nella tablla TUTTI
> i dati della query .


Non potresti memorizzare le informazioni che ottieni in un altro oggetto
(ad esempio una LinkedList) e poi definirti un tuo TableModel per la
tabella che per gestire le informazioni utilizza l'oggetto che hai deciso
di usare per memorizzare i dati del ResultSet ??
________________________________________________

Se c'è soluzione perché ti preoccupi ??
Se non c'é soluzione perché ti preoccupi ???
________________________________________________
  #2  
Old 07-15-2008
Ektico
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

Concordo..

"Claudio Di Vita" <addabe@tin.it> wrote in message
news:1vpu4ayym7mam$.xaq8nbaxnt3g$.dlg@40tude.net.. .
> Il Fri, 29 Aug 2003 15:39:29 +0200, John Smith ha scritto :
>
> > Ho una JTable che dovrebbe contenere i risultati di una query. Il
> > problema e' che quando il numero di dati e' molto elevato l'oggetto
> > Vector utilizzato dal DefaultTableModel della Jtable che contiene i dati
> > va logicamente in OutOfMemoryError quando eseguo troppi inserimenti.

>
> > Eppure devo fare in modo che l'utente possa scorrere nella tablla TUTTI
> > i dati della query .

>
> Non potresti memorizzare le informazioni che ottieni in un altro oggetto
> (ad esempio una LinkedList) e poi definirti un tuo TableModel per la
> tabella che per gestire le informazioni utilizza l'oggetto che hai deciso
> di usare per memorizzare i dati del ResultSet ??
> ________________________________________________
>
> Se c'è soluzione perché ti preoccupi ??
> Se non c'é soluzione perché ti preoccupi ???
> ________________________________________________



  #3  
Old 07-15-2008
Ektico
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

Concordo..

"Claudio Di Vita" <addabe@tin.it> wrote in message
news:1vpu4ayym7mam$.xaq8nbaxnt3g$.dlg@40tude.net.. .
> Il Fri, 29 Aug 2003 15:39:29 +0200, John Smith ha scritto :
>
> > Ho una JTable che dovrebbe contenere i risultati di una query. Il
> > problema e' che quando il numero di dati e' molto elevato l'oggetto
> > Vector utilizzato dal DefaultTableModel della Jtable che contiene i dati
> > va logicamente in OutOfMemoryError quando eseguo troppi inserimenti.

>
> > Eppure devo fare in modo che l'utente possa scorrere nella tablla TUTTI
> > i dati della query .

>
> Non potresti memorizzare le informazioni che ottieni in un altro oggetto
> (ad esempio una LinkedList) e poi definirti un tuo TableModel per la
> tabella che per gestire le informazioni utilizza l'oggetto che hai deciso
> di usare per memorizzare i dati del ResultSet ??
> ________________________________________________
>
> Se c'è soluzione perché ti preoccupi ??
> Se non c'é soluzione perché ti preoccupi ???
> ________________________________________________



  #4  
Old 07-15-2008
John Smith
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

Forse non riesco a capire cosa intendi.. posso tranquillamente usare
qualunque oggetto per memorizzare i dati che vegnono dal resultset, ma
il problema rimane. Anche usando un ArrayList o una LinkedList nella
fase in cui mi scorro il resultSet e inserisco ogni riga di dati
all'interno del contenitore ( qualunque esso sia) ad un certo punto
ottengo l' OutOfMemoryError. Considera che ho a che fare con MILIONI di
record.
Se non ho capito il tuo suggerimento ti sarei grato se fossi piu' chiaro
in proprosito.

Grazie
Ciao


-----------------------------------------------------------------------
L'email e' fasulla, fare reply di questo post sul newsgroup di origine
-----------------------------------------------------------------------



Claudio Di Vita wrote:

> Il Fri, 29 Aug 2003 15:39:29 +0200, John Smith ha scritto :
>
>
>>Ho una JTable che dovrebbe contenere i risultati di una query. Il
>>problema e' che quando il numero di dati e' molto elevato l'oggetto
>>Vector utilizzato dal DefaultTableModel della Jtable che contiene i dati
>>va logicamente in OutOfMemoryError quando eseguo troppi inserimenti.

>
>
>>Eppure devo fare in modo che l'utente possa scorrere nella tablla TUTTI
>>i dati della query .

>
>
> Non potresti memorizzare le informazioni che ottieni in un altro oggetto
> (ad esempio una LinkedList) e poi definirti un tuo TableModel per la
> tabella che per gestire le informazioni utilizza l'oggetto che hai deciso
> di usare per memorizzare i dati del ResultSet ??
> ________________________________________________
>
> Se c'è soluzione perché ti preoccupi ??
> Se non c'é soluzione perché ti preoccupi ???
> ________________________________________________


  #5  
Old 07-15-2008
John Smith
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

Forse non riesco a capire cosa intendi.. posso tranquillamente usare
qualunque oggetto per memorizzare i dati che vegnono dal resultset, ma
il problema rimane. Anche usando un ArrayList o una LinkedList nella
fase in cui mi scorro il resultSet e inserisco ogni riga di dati
all'interno del contenitore ( qualunque esso sia) ad un certo punto
ottengo l' OutOfMemoryError. Considera che ho a che fare con MILIONI di
record.
Se non ho capito il tuo suggerimento ti sarei grato se fossi piu' chiaro
in proprosito.

Grazie
Ciao


-----------------------------------------------------------------------
L'email e' fasulla, fare reply di questo post sul newsgroup di origine
-----------------------------------------------------------------------



Claudio Di Vita wrote:

> Il Fri, 29 Aug 2003 15:39:29 +0200, John Smith ha scritto :
>
>
>>Ho una JTable che dovrebbe contenere i risultati di una query. Il
>>problema e' che quando il numero di dati e' molto elevato l'oggetto
>>Vector utilizzato dal DefaultTableModel della Jtable che contiene i dati
>>va logicamente in OutOfMemoryError quando eseguo troppi inserimenti.

>
>
>>Eppure devo fare in modo che l'utente possa scorrere nella tablla TUTTI
>>i dati della query .

>
>
> Non potresti memorizzare le informazioni che ottieni in un altro oggetto
> (ad esempio una LinkedList) e poi definirti un tuo TableModel per la
> tabella che per gestire le informazioni utilizza l'oggetto che hai deciso
> di usare per memorizzare i dati del ResultSet ??
> ________________________________________________
>
> Se c'è soluzione perché ti preoccupi ??
> Se non c'é soluzione perché ti preoccupi ???
> ________________________________________________


  #6  
Old 07-15-2008
[Ech3L0n] NSA
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

On Fri, 29 Aug 2003 15:47:31 +0200, Claudio Di Vita <addabe@tin.it>
wrote:

>Il Fri, 29 Aug 2003 15:39:29 +0200, John Smith ha scritto :
>
>> Ho una JTable che dovrebbe contenere i risultati di una query. Il
>> problema e' che quando il numero di dati e' molto elevato l'oggetto
>> Vector utilizzato dal DefaultTableModel della Jtable che contiene i dati
>> va logicamente in OutOfMemoryError quando eseguo troppi inserimenti.

>
>> Eppure devo fare in modo che l'utente possa scorrere nella tablla TUTTI
>> i dati della query .

>
>Non potresti memorizzare le informazioni che ottieni in un altro oggetto
>(ad esempio una LinkedList) e poi definirti un tuo TableModel per la
>tabella che per gestire le informazioni utilizza l'oggetto che hai deciso
>di usare per memorizzare i dati del ResultSet ??


Definire un TableModel alternativo è la soluzione corretta.
Usando però un LinkedList come backing store per il resulset vuol dire
continuare a conservare tutto il resultset in memoria, quindi anche il
LinkedList ad un certo punto darebbe problemi di memoria esaurita.

Secondo me si potrebbe creare una specializzazione di Vector o di
ArrayList che utilizzi come backing store un file temporaneo... l'idea
è stuzzicante, quasi quasi inizio a lavorarci sopra :P
Se l'interfaccia rimane la stessa di Vector, si possono nascondere
tutte le operazioni sul file. Se poi lo spazio su disco è esaurito (te
ne accorgi dalle eccezioni lanciate quando si tenta di creare nuovi
file o di scrivere in coda ad un file esistente) è sufficiente
lanciare un OutOfMemoryError (anche se è un errore grave, è sembre
possibile lanciarlo con throw, perchè OutOfMemoryError deriva da
Throwable).
L'unico problema potrebbe essere quello delle prestazioni... un Vector
fatto in questo modo è molto lento, quindi dovremmo pensare anche ad
una "cache" interna abbastanza intelligente. Tale cache dovrebbe
cercare di capire almeno quando si tenta di scorrere la lista in modo
sequenziale. In questo caso la velocità potrebbe migliorare
"precaricando" un tot di record dal backing store.

Stai a vedere che salta fuori un gestore di memoria virtuale in java!
(no vabbè ora sto vaneggiando)



--
"tanto va la gatta al largo che affoga"
(per rispondere personalmente leva IlDitoDalCulo)
  #7  
Old 07-15-2008
[Ech3L0n] NSA
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

On Fri, 29 Aug 2003 15:47:31 +0200, Claudio Di Vita <addabe@tin.it>
wrote:

>Il Fri, 29 Aug 2003 15:39:29 +0200, John Smith ha scritto :
>
>> Ho una JTable che dovrebbe contenere i risultati di una query. Il
>> problema e' che quando il numero di dati e' molto elevato l'oggetto
>> Vector utilizzato dal DefaultTableModel della Jtable che contiene i dati
>> va logicamente in OutOfMemoryError quando eseguo troppi inserimenti.

>
>> Eppure devo fare in modo che l'utente possa scorrere nella tablla TUTTI
>> i dati della query .

>
>Non potresti memorizzare le informazioni che ottieni in un altro oggetto
>(ad esempio una LinkedList) e poi definirti un tuo TableModel per la
>tabella che per gestire le informazioni utilizza l'oggetto che hai deciso
>di usare per memorizzare i dati del ResultSet ??


Definire un TableModel alternativo è la soluzione corretta.
Usando però un LinkedList come backing store per il resulset vuol dire
continuare a conservare tutto il resultset in memoria, quindi anche il
LinkedList ad un certo punto darebbe problemi di memoria esaurita.

Secondo me si potrebbe creare una specializzazione di Vector o di
ArrayList che utilizzi come backing store un file temporaneo... l'idea
è stuzzicante, quasi quasi inizio a lavorarci sopra :P
Se l'interfaccia rimane la stessa di Vector, si possono nascondere
tutte le operazioni sul file. Se poi lo spazio su disco è esaurito (te
ne accorgi dalle eccezioni lanciate quando si tenta di creare nuovi
file o di scrivere in coda ad un file esistente) è sufficiente
lanciare un OutOfMemoryError (anche se è un errore grave, è sembre
possibile lanciarlo con throw, perchè OutOfMemoryError deriva da
Throwable).
L'unico problema potrebbe essere quello delle prestazioni... un Vector
fatto in questo modo è molto lento, quindi dovremmo pensare anche ad
una "cache" interna abbastanza intelligente. Tale cache dovrebbe
cercare di capire almeno quando si tenta di scorrere la lista in modo
sequenziale. In questo caso la velocità potrebbe migliorare
"precaricando" un tot di record dal backing store.

Stai a vedere che salta fuori un gestore di memoria virtuale in java!
(no vabbè ora sto vaneggiando)



--
"tanto va la gatta al largo che affoga"
(per rispondere personalmente leva IlDitoDalCulo)
  #8  
Old 07-15-2008
[Ech3L0n] NSA
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

On Fri, 29 Aug 2003 18:00:25 +0200, "[Ech3L0n] NSA"
<ech3l0n.IlDitoDalCulo@email.it> wrote:

>lanciare un OutOfMemoryError (anche se è un errore grave, è sembre


sembre=sempre

scusate c'ho le dita un po' influenzate
(e dire che "B" e "P" sulla tastiera sono abbastanza lontane!)




--
"tanto va la gatta al largo che affoga"
(per rispondere personalmente leva IlDitoDalCulo)
  #9  
Old 07-15-2008
[Ech3L0n] NSA
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

On Fri, 29 Aug 2003 18:00:25 +0200, "[Ech3L0n] NSA"
<ech3l0n.IlDitoDalCulo@email.it> wrote:

>lanciare un OutOfMemoryError (anche se è un errore grave, è sembre


sembre=sempre

scusate c'ho le dita un po' influenzate
(e dire che "B" e "P" sulla tastiera sono abbastanza lontane!)




--
"tanto va la gatta al largo che affoga"
(per rispondere personalmente leva IlDitoDalCulo)
  #10  
Old 07-15-2008
akillez
Guest
 
Posts: n/a
Default Re: Problema con grosse moli di dati

Ektico ha scritto:

> Concordo..


> "Claudio Di Vita" <addabe@tin.it> wrote in message
> news:1vpu4ayym7mam$.xaq8nbaxnt3g$.dlg@40tude.net.. .
> > Il Fri, 29 Aug 2003 15:39:29 +0200, John Smith ha scritto :
> >
> > > Ho una JTable che dovrebbe contenere i risultati di una query. Il
> > > problema e' che quando il numero di dati e' molto elevato l'oggetto
> > > Vector utilizzato dal DefaultTableModel della Jtable che contiene i dati
> > > va logicamente in OutOfMemoryError quando eseguo troppi inserimenti.

> >
> > > Eppure devo fare in modo che l'utente possa scorrere nella tablla TUTTI
> > > i dati della query .

> >
> > Non potresti memorizzare le informazioni che ottieni in un altro oggetto
> > (ad esempio una LinkedList) e poi definirti un tuo TableModel per la
> > tabella che per gestire le informazioni utilizza l'oggetto che hai deciso
> > di usare per memorizzare i dati del ResultSet ??
> > ________________________________________________
> >
> > Se c'è soluzione perché ti preoccupi ??
> > Se non c'é soluzione perché ti preoccupi ???
> > ________________________________________________



Quanti MB Ram ha il tuo personal computer?



--

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it




Thread Tools
Display Modes

Forum Jump


All times are GMT. The time now is 01:30 AM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0