Am Thu, 24 Sep 2009 14:18:33 -0400 schrieb D. Richard Hipp:

> When autovacuum=FULL or autovacuum=INCREMENTAL and SQLite needs to  
> seek to the end of a long chain of overflow pages, it attempts to use  
> the "pointer map pages" that are available in these modes to locate  
> the pages without actually reading the prior pages from the disk.  Key  
> word:  "attempts".  There is no guarantee of success.  But if the  
> database is not too badly fragmented, it will usually succeed.
> 
> When autovacuum=OFF, then pointer map pages are not availble and  
> SQLite is compelled to read all prior pages when seeking to the end of  
> an overflow chain.

That's interesting. So that means that if I create and fill an SQLite
database that is intended for later read-only access, I get an additional
performance boost with autovacuum=OFF as long as the database is created
and filled with data, and lateron I switch to autovacuum=FULL (or
INCREMENTAL) when I'm done? I.e. the latest after an explicit VACUUM when
I'm finished writing to the database, there would be no fragmentation
present, and read access would be perfectly optimized with any autovacuum
pragma other than OFF?

Thanks,
Wolfgang

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to