On Wed, 17 May 2017 22:18:19 -0700 Gabriele Lanaro <gabriele.lan...@gmail.com> wrote:
> Hi, I'm trying to assess if the performance of my application is > dependent on disk access from sqlite. > > To rule this out I wanted to make sure that the SQLite DB is > completely accessed from memory and there are no disk accesses. > > Is it possible to obtain this effect by using pragmas such as > cache_size? > > Another solution is to copy the existing db to a :memory: db but I'd > like to achieve the same effect without doing so (because it will > require substantial modification of the application). For the sake of > argument, let's image that using :memory: db is not an option. > > Also using a ramdisk is not an option because I don't have root > access to the machine. What OS are you using? You can next tips to make the app less dependant on disk I/O access: a) change where store temporal tables (mat views, subqueries, temp tables) and indices (transient, to use ram always (pragma temp_store=2), b) increase cache size, the more, the better (os disk cache is shared with other processes and is slower), if cache is equal or bigger than your db, it'll be fit in ram, c) set config SQLITE_CONFIG_STMTJRNL_SPILL=-1 if you use statement journal files (check http://www.sqlite.org/tempfiles.html#stmtjrnl), d) use wal mode to avoid *-shm files, and set wal_checkpointing, e) use mmap_size pragma to minimize I/O (check http://www.sqlite.org/mmap.html it has disadvanteges too) > Thanks, > > Gabriele HTH --- --- Eduardo Morras <emorr...@yahoo.es> _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users