Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [JAVA] JDBC e ResultSet

    Ciao a tutti. Devo sviluppare un componente per un progetto e volevo dei chiarimenti sull'uso di JDBC. Premetto che so gia utilizzare JDBC ma questa cosa proprio non capisco come implementarla e sopratuttto se è possibile realizzare una cosa del genere.

    In pratica il mio componente non fa altro che eseguire delle query su diversi DBMS (anche di tipologia differente, prevalentemente MySQL, Postgre e DB2). Per eseguire gli statement sql sui DBMS utilizzo JDBC:

    Codice PHP:
    Statement stmt conn.createStatement();
    ResultSet rs stmt.executeQuery"SELECT * FROM miaTabella" ); 
    Il punto è: una volta eseguita la query, tutti i record vengono inviati in un singolo blocco dal DBMS e memorizzati nel ResultSet. Qui arriva il mio problema.
    Devo lavorare con centinaia di DB e le query vengono eseguite da Thread in parallelo, quindi memorizzare tutti i record della query nel ResultSet potrebbe diventare parecchio pesante da gestire (potrebbero venire eseguite query che restituiscono anche Milioni di record). Volevo sapere se esiste la possibilità di far gestire il risultato della query dal DBMS; mi spiego meglio:

    Una volta eseguito lo statement SQL i dati non vengono inviati dal DBMS all'applicativo, ma è il DBMS stesso a tenerli in memoria; vengono inviati all'applicazione solamente quando richiesto dell'applicazione stessa, un record per volta. In questo modo il carico di lavoro sarebbe suddiviso tra tutti i DBMS e si avrebbe un incremento delle prestazioni.

    Grazie a tutti quelli che risponderanno
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    oO....grazie mille non mi ero accorto che c'era una sezione dedicata
    Evidentemente il mio cervello sta fondendo
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  4. #4
    Ciao mr.click, quello che secondo me dovresti fare e delle query paginate, in questo link puoi trovare tutto quello che ti serve

  5. #5
    Non mi serve una paginazione dei risultati....i risultati andranno mandati a video tutti uno sotto l'altro senza paginazione (anche se saranno milioni di righe)....altre soluzioni?
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  6. #6
    Se devi presentare a video tutti i risultati in qualche modo dovranno essere contenuti in memoria (anche se temporaneamente) quindi non penso che ci sia altro modo se non usando delle stored procedures che memoriazzano il risultato in un cursore e che ti ritorna solo porzioni di esso (anche se in fondo e come fare query paginate).
    Personalmente (mi occupo da diversi anni di applicativi web gestionali) sconsiglio vivamente di presentare a video milla e mila risultati per ovvi motivi di performace dell'applicativi.

  7. #7
    Su questo hai ragione. Il problema è che i DB su cui devo effettuare le query sono pre-esistenti e ho l'accesso in sola lettura, quindi devo trovare un'altra soluzione. Grazie per il consiglio comunque
    V.I.S.T.A. --> Virus Inside, Switch To Apple

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.