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

Reply via email to