Putting db.transaction()/db.commit() around the model stuff does indeed boost the performance to the levels of the QSqlQuery implementation.

However I don't really like that solution, since the model should handle that transaction business, so I removed that again. It's weird that when I leave the default edit strategy, the performance is pretty much the same as when I use ManualSubmit.. Seems there is a bug somewhere here. Obviously even with manualsubmit there are some hard drive writes going on which is destroying performance.