Hi again, I am wondering if there is any performance benefit in *not* wrapping multiple SELECT calls in a BEGIN/END transaction?
As I understand it, with wrapping: BEGIN -- does nothing (yet) SELECT1 -- creates a SHARE-ONLY lock on the DB SELECT2 -- nothing extra SELECT3 -- nothing extra END -- cancels SHARE lock Or, without wrapping, does it create and drop the SHARE LOCK each time? Does that add overhead? ie: SELECT1 -- creates a SHARE-ONLY lock on the DB, selects, then drops lock SELECT2 -- creates a SHARE-ONLY lock on the DB, selects, then drops lock SELECT3 -- creates a SHARE-ONLY lock on the DB, selects, then drops lock Also, silly question, but if I want to find a row and then read a blob using the sqlite3_blob_open API, I assume I must use transactions to get a consistent read, right? ie, without a transaction, SELECT rowid FROM table WHERE condition; ** another client could make a change to a db here ** sqlite3_blob_open( rowid ) ** blob may now be for the "wrong row" cheers, Paul _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users