Nikolaus Rath <nikolaus-bth8mxji...@public.gmane.org> writes:
> I'm experimenting with creation of a 156 MB database from scratch. I've
> set synchronous = NORMAL and locking_mode = exlusive.
>
> With journal_mode = off and without wrapping the INSERTs into a
> transaction, creating the db takes 54 seconds.
>
> With journal_mode = WAL (and still no transaction), it takes an
> impressive 900 seconds.
>
> With journal_mode = WAL and the INSERTs packed into a transaction, the
> total time is 60 seconds.

Really no one an idea of why this is happening?

Even taking into account that SQLite has to write a full page into the
WAL (rather than just the new row + commit marker as I assumed), a
factor of 20 slowdown seems excessive. Also, I believe that with
synchronous = NORMAL, there should only be fsync() calls when
checkpointing (rather than for every INSERT).


Thanks,

   -Nikolaus

-- 
 »Time flies like an arrow, fruit flies like a Banana.«

  PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6  02CF A9AD B7F8 AE4E 425C
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to