Recentemente ho letto di SQLite e ho pensato di fare un tentativo. Quando inserisco una registrazione, va bene. Ma quando inserisco cento ci vogliono cinque secondi e man mano che il conteggio dei record aumenta, aumenta anche il tempo. Cosa potrebbe esserci di sbagliato? Sto usando lo SQLite Wrapper (system.data.SQlite)
:SQLite Insert molto lento?
dbcon = new SQLiteConnection(connectionString);
dbcon.Open();
//---INSIDE LOOP
SQLiteCommand sqlComm = new SQLiteCommand(sqlQuery, dbcon);
nRowUpdatedCount = sqlComm.ExecuteNonQuery();
//---END LOOP
dbcon.close();
+1 Questo è menzionato nel [FAQ SQLite, # 19] (http://www.sqlite.org/faq.html#q19): quando si esegue questa operazione senza un inizio/fine, SQLite sta creando una transazione per ogni inserto. –
perché hai usato 3 ExecuteNonQuery dove si può fare il lavoro –
3 'ExecuteNonQuery' perché 1 per' BEGIN', 1 (o più) per ogni 'INSERT' e 1 per' END'.A meno che non abbiate aggiunto tutte le istruzioni SQL a una stringa (delimitata da punto e virgola), sono necessarie più chiamate 'ExecuteNonQuery'. – tidwall