> (I guess it well might not on an SSD disk, but on a conventional
> rotational disk, pager could read several pages ahead with one seek -
> but does it?)

You mean that pager should read several pages at once even if it
doesn't need them right now but it estimates that it will need them in
near future? Pager never does that. It reads pages one-by-one only at
the time it first needs them. So probably optimization is not that
much as you think it is. Of course I'm not taking into account
OS-level caching, though I don't know if it has any impact here.


Pavel

On Wed, Jul 7, 2010 at 5:03 AM, Igor Sereda <ser...@gmail.com> wrote:
>> It's never time to VACUUM a database.
>
> This is an interesting statement. In our application, all tables get
> heavily fragmented with time (99% or more). I was considering VACUUM
> as a means to defragment, and, presumably, improve search performance.
> Was I misguided, and search performance does not degrade significantly
> with the increased fragmentation of the DB?
>
> (I guess it well might not on an SSD disk, but on a conventional
> rotational disk, pager could read several pages ahead with one seek -
> but does it?)
>
> It would be great to see performance comparison, if anyone has ever did it.
>
> -- Igor
>
>
>
> On Wed, Jul 7, 2010 at 1:52 AM, Simon Slavin <slav...@bigfraud.org> wrote:
>>
>> On 6 Jul 2010, at 10:45pm, Kristoffer Danielsson wrote:
>>
>>> Q: How do I programmatically (through sqlite-APIs?) determine if it's time 
>>> to VACUUM a database?
>>
>> It's never time to VACUUM a database.  The VACUUM command is useful only if 
>> you have want to recover unused space from the database file.  So if your 
>> database file once took up 5 Meg, and you deleted a lot of data from it and 
>> it now takes up only 2 Meg, you could recover 3 Megabytes of disk space.  
>> But how useful is that 3 Megabytes of space to you ?  Are you going to use 
>> it for something really valuable ?  And how long will it be before you get 3 
>> Megabytes more data which will fill it up again ?
>>
>> If you're trying to get the database in shape to make copies, e.g. to burn 
>> it on a DVD or send it to customers, or put it on a device with limited 
>> space, then there might be some reason to use VACUUM.  If not, then it's 
>> just a waste of resources.
>>
>> Simon.
>> _______________________________________________
>> 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
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to