Excellent! This is exactly what I am looking for. Thanks
> -----Original Message----- > From: Dennis Jenkins [mailto:[EMAIL PROTECTED] > Sent: 16 September 2005 12:58 > To: sqlite-users@sqlite.org > Subject: Re: [sqlite] determining number of 'used' pages? > > > Mark Allan wrote: > > >Hi, > > > >I am using SQLite on an embedded software product. The > SQLite database file is saved and read from a NOR flash chip. > We have found that the writing of data to this Flash chip can > be quite slow. Therefore we need to minimise the writes that > are made by SQLite. > > > >We have disabled the creation of the journal file when > writing data to the database and this has halved the write > time. If anyone can suggest any way we can further reduce the > amount of file writes made or speed up the writing of data to > the file system then these would be gratefully receieved. > > > >The main area where we now have a performance problem > however is with deleting records. The problem is due to the > need to 'vacuum' the database when we delete records. We do > this as we need to know the size of the database file to show > a capacity readout to the user. I have been looking into the > SQlite code to try and find if there is a way in which I can > read the number of 'used' pages. If I can determine the > number of used pages in the database then I can use this to > generate the capacity report and I can disable the vacuuming > of the database, which will save us much time, about 3-4 seconds!. > > > >Please can someone advise me as to how I can determine the > number of used pages? Looking at the vacuum code it seems it > needs to create a temporary file and database to perform > vacuum. Is there a way I can determine the number of 'used' > pages without the overhead of having to create a temporary > database on the filesystem? > > > >Thanks in advance for your help. > > > > > >Mark > > > > > I ported some code from sqlite2 to sqlite3 that will do what > you want. > You can get it from "http://unwg.no-ip.com/freepages.c". > What you want > is in the function at the very bottom of the file: > > int sqlite3_get_page_stats(sqlite3* db, long *lTotal, long > *lFree, long *lSize); > > > Happy hacking! > >