Christoph Walser, ETH Zurich wrote: > I have a C application which generates around 1000 rows of data per > second to insert in an SQLite database. > What I now do is to collect 5000 rows in a buffer and then for each row, > execute sqlite3_bind_*, sqlite3_step, sqlite3_reset. > > I wonder now how sqlite does this internaly: with the above mentioned > technique, is every row capsulated into a single transaction or are they > one large transaction alltogether?
If you don't issue explicit BEGIN and COMMIT statements, then each row is a separate transaction. > Is there a way to do all the 5000 rows in one transaction to minimize > database locking time? I know I can do a sqlite3_exec with "BEGIN > TRANSACTION", then do the inserts and then "COMMIT TRANSACTIONS" but how > does this work when using the bind, step and reset functions? Yes it does. -- Igor Tandetnik _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users