What I meant is this: Database size = 1 MB. When opening connection, set chunk to ~100 kB. Database size = 100 MB. When opening connection, set chunk to ~10 MB. Database size = 1 GB. When opening connection, set chunk to ~100 MB. I guess SQLITE_FCNTL_CHUNK_SIZE should be a 2^n value, so this gives me this algorithm: unsigned int v = databaseSizeBytes / 10; // Round up to the next highest power of 2 (well-known bit trick ;) --v; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; ++v; // A minimum of 32 kB is desirable? chunkSize = max(32768, v);
Thoughts? > From: paiva...@gmail.com > Date: Tue, 22 Feb 2011 10:01:03 -0500 > Subject: Re: [sqlite] Auto-grow setting? > To: sqlite-users@sqlite.org > CC: larvpo...@hotmail.se > > Please reply to the list, not to me only. > > It's impossible to set chunk size to percentage of the database size, > you can only set a constant value. > > > Pavel > > On Tue, Feb 22, 2011 at 9:13 AM, Sven L <larvpo...@hotmail.se> wrote: > > Thanks a lot! :D > > > > What do you think of setting the chunk size to approximately 10% of the > > database file size? Or is it better to use a constant? > > > >> From: paiva...@gmail.com > >> Date: Tue, 22 Feb 2011 08:30:54 -0500 > >> Subject: Re: [sqlite] Auto-grow setting? > >> To: sqlite-users@sqlite.org > >> CC: larvpo...@hotmail.se > >> > >> Is SQLITE_FCNTL_CHUNK_SIZE what you are looking for? See more > >> information about it here: > >> http://www.sqlite.org/c3ref/c_fcntl_chunk_size.html. Notice that this > >> feature appeared only in recent version of SQLite, so if you have some > >> earlier version you won't be able to control it and SQLite will > >> grow/shrink database page-by-page (maximum page size is 32Kb). > >> > >> > >> Pavel > >> > >> On Tue, Feb 22, 2011 at 7:28 AM, Sven L <larvpo...@hotmail.se> wrote: > >> > > >> > Can't seem to find a setting to control how the database file grows when > >> > full. Is there such a setting? > >> > It looks like the file increases by some < 100 kB when it is full. I > >> > want to change this to around 10 MB (or even more) to avoid file > >> > fragmentation. > >> > > >> > Any ideas? > >> > > >> > Thanks > >> > _______________________________________________ > >> > sqlite-users mailing list > >> > sqlite-users@sqlite.org > >> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > >> > > > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users