On 17 Apr 2016, at 10:38am, Cecil Westerhof <cldwesterhof at gmail.com> wrote:
> I start with a: > ? > > ?conn.setAutoCommit(false); > but that is not the same? Yes, that does the same as BEGIN ... END. At least, according to the documentation it does. But you caused me to look up how the JDBC works, especially for operations which involve a lot of memory. It turns out that this is not a 'thin' shim which just translates Java calls to SQLite. It's a 'thick' shim and does lots of things between the two to make all its databases look like they work the same way. The result of this is that almost everything you see resulting from your calls is done by JDBC, not SQLite. This includes whatever caused your initial query about some operations taking a long time. Whatever it is, it's probably some consequence of how JDBC works, not how SQLite works, and experts on Java are going to understand it better than experts on SQLite. You can probably verify this by downloading the SQLite shell tool and performing the same operations in it (e.g. DROP TABLE) as you do in your Java code. I'm betting you don't get the same slowdowns in the same places. Simon.

