Hello,

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.

I am slightly surprised by this. I was expecting that the difference
between transaction/no transaction with WAL is just the writing of an
additional few bytes of commit marker into the WAL file with every
insert. But apparently something much more time consuming is happening
as well.

Furthermore, if I turn off auto checkpointing, the WAL file grows to
more than 5 GB without transactions, but only to about 922 MB with a
transaction. Are the commit markers really taking that much space?

Can someone shed some light on what factor I am missing here?


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