On Sep 24, 2009, at 2:09 PM, Martin Pfeifle wrote: > Hi Richard, > > assume I have a table mytable (id, blob1,blob2,blob3,blob4) > where each blob extends over several pages. > > Then I do the following SQL command: > select blob4 from mytable where id = 4711 > > Do I understand you correctly that in the case autuvacuum =true, > the pages covered by blob1 to blob3 are not read from disk, > whereas in the case autovaccum=false they are also read from disk > into main memory? >
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. D. Richard Hipp d...@hwaci.com _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users