PDA

View Full Version : [SQL] Velocizzare INSERT


Manugal
12-02-2009, 17:35
Ciao a tutti!

Sto scrivendo una funzione che prende dei dati da una matrice e inserisce ogni valore di tale matrice in una tabella di un database. Ora siccome la matrice è grande all'incirca 1500x1500, ho notato che facendo una INSERT alla volta ci mette troppo tempo. C'è un modo per raggruppare le INSERT in modo da inserire, ad esempio, 100 valori alla volta, o 1000 valori alla volta?

Grazie.

first register
12-02-2009, 17:52
up

interessa anche a me

:)

kk3z
12-02-2009, 19:40
INSERT INTO tabella (campo1, campo2, campo3) VALUES
(valore1, valore2, valore3),
(valore1, valore2, valore3),
ecc

Manugal
12-02-2009, 19:49
Semplice, non ci avevo pensato :doh:

La proverò. Grazie. ;)

Manugal
13-02-2009, 13:25
Ciao.

Quell'istruzione l'ho provata, ma mi restituisce un errore di sintassi. Uso SQLite. Ho letto infatti che per inserire INSERT multiple in SQLite, devo racchiuderle in un blocco BEGIN...COMMIT, ma non saprei come fare (non conosco la sintassi). Qualcuno può aiutarmi in merito?

Manugal
13-02-2009, 14:00
Ho fatto questa prova:


BEGIN;
INSERT INTO NetworkDiam (NodoPartenza, NodoArrivo, CamminoMin) VALUES (0,1,2);
INSERT INTO NetworkDiam (NodoPartenza, NodoArrivo, CamminoMin) VALUES (0,2,3);
COMMIT;


La prima volta che la faccio partire mi dice: " 0 rows affected " . Mentre se poi la faccio partire una seconda volta mi dice: " cannot start a transaction within a transaction "

Non capisco perché. La sintassi dovrebbe essere questa.

Manugal
13-02-2009, 15:34
Ho trovato la soluzione per il mio programma Java.

Si trova scritta qua: http://www.zentus.com/sqlitejdbc/usage.html#section4 ;)

Ciao a tutti grazie.

shinya
13-02-2009, 16:16
Se avessi detto che usi JBDC avresti ottenuto una risposta precisa molto più velocemente...