I'm trying to optimize a C++ application that uses sqlite 3 for database 
access. As far as I know it uses journaling with WAL and has a lot of 
files/tables (about 400). Profiling this application with Linux perf, I found 
that it spends about 30% of its time inside the rbuFindMaindb function of 
SQlite3. This function mostly consists of a loop that goes through all of the 
journaling WAL files in the virtual file system, so it seems that in order to 
bring down the cost of said loop I would have to reduce the number of WAL 
files. Seeing that apparently sqlite creates a WAL for every database file, I'm 
not aware how to fix this.

Now my question: How can I optimize this? Can I reduce the number of WAL files 
without reducing the number of database files? Is there a different journaling 
mode that does not call rbuFindMaindb so often? Can I optimize my program so 
that this function is called less often?

Thanks for your suggestions.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to