Ecco il punto:Inserimento batch JDBC SLOW! Voglio dire, DAVVERO LENTAMENTE?
- creo una connessione
conn
utilizzando ilDriverManager
- ho impostato
conn.autoCommit(false);
- Poi ho
PreparedStatement pStat = conn.prepareStatement(insert_string_with_parameter);
- ho impostato diversi parametri con pStat.set ... poi aggiungo il lotto con
pStat.addBatch();
- Ogni 10000 righe (chiamo
addBatch()
10000 volte), chiamopStat.executeBatch();
- Non sono sicuro se necessario, ma che io chiamo anche
pStat.clearBatch()
subito dopo
Anche se tutto quanto sopra suona bene a me, questo è LENTO !!!.
Ho una media di soli 35 record (solo 8 colonne in totale, solo una chiave primaria auto-incrementante tecnica e alcuni vincoli non nulli) al secondo. Calcolo che mi ci vorrebbe una settimana per inserire tutte le mie righe da 20M ...
Sto facendo qualcosa di sbagliato?
Quante righe dovrei provare ad aggiungere ad ogni ciclo batch? Sono 10000 troppi?
Ho provato anche con 1000 righe al momento, ma non ho visto alcun miglioramento significativo ... – Gevorg
Si prega di mostrare SQL, schema e indicare indici e trigger che sono sulla tabella (s) coinvolti. – Bohemian
nessun indice e nessun trigger. È la tabella più semplice di sempre ... – Gevorg