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

    [Java] Velocizzare query sql

    Salve,

    in seguito ad un interrogazione devo salvare tutti gli ID trovati in un vettore (risultato) e in una stringa (appoggio)

    codice:
    public Vector ricercaV(String query) {
        
           Vector risultato=new Vector();  
           String tmp="";
           appoggio="";
            try {
                Statement s = db.createStatement();            
                
                s.execute(query);                      
                ResultSet rs = s.getResultSet(); 
                
                
                
                if (rs != null){                               
    
                        while (rs.next()) {
                            tmp = rs.getString("ID");
                            appoggio = appoggio + tmp + ";";
                            risultato.addElement(tmp);                        
                        }
                    
                }
                s.close();           
            }
            catch (Exception e) {
                System.out.println("errore in ricercaV"+e);            
                JOptionPane.showMessageDialog(msg, "Errore in ricercaV "+e);           
            }
           
            return risultato;
     }
    la query è del tipo "SELECT ID from tabella WHERE condizioni"

    il metodo funziona, solo che per risultati dell'ordine di 30k record impiega oltre 2 minuti...

    c'è un modo alternativo e quindi più veloce per far le stesse cose?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2
    up
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Prova ad usare un PreparedStatement al posto di Statement
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Che scopo ha la variabile appoggio visto che poi non la utilizzi da nessuna parte?

    Ad ogni modo puoi cominciare ad ottimizzare le prestazioni lavorando sulla concatenazione delle stringhe: leggi
    Al mio segnale... scatenate l'inferno!

  5. #5
    Ciao!
    Prova ad utilizzare la classe arraylist invece che vector!
    Se migliora poi ti spiego!
    cris

  6. #6
    Grazie per i consigli!!

    utilizzando StringBuffer sono passato da 3 minuti e 2 secondi d'elaborazione a 3 secondi VVoVe:

    arraylist e preparedstatement non li ho provati ma li terrò in considerazione per il futuro!
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

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 © 2025 vBulletin Solutions, Inc. All rights reserved.