On Tue, Nov 8, 2011 at 10:04 AM, Orit Alul <[email protected]> wrote:

> Hi,
>
> I've performed a vacuuming operation (I ran the following command:
> sqlite3.exe <dbName> VACUUM;).
> It caused the WAL file to be the same size as the db file and it never
> shrink back.
>
> For example I had a db file in the size of 1.8GB, wal file in the size of
> 1.7MB, shm file in the size of 32KB.
> I ran the VACUUM; command on the db file, now the db file got down to
> 1.2GB, wal file got up to 1.2GB and the shm file got up to 9.5MB.
>
> Do you have  a clue what is the cause for this strange behavior? Do you
> know if there's a command that can shrink the files back?
>

The WAL file is not truncated (prior to the last database connection
closing) because overwriting an existing file is faster than appending to a
file.  Hence reusing an existing WAL is faster than truncating and
appending.

But if the file is larger than you like, you can set an upper bound on its
size using the journal_size_limit pragma.
http://www.sqlite.org/pragma.html#pragma_journal_size_limit  With this
pragma setting, the WAL will be truncated down to the requested size after
each successful checkpoint operation.



>
> Thanks,
> Orit
>
>
>
> [Creative Zone by MediaMind]<http://feeds.mediamind.com/CreativeZone>
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
D. Richard Hipp
[email protected]
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to