Jens Miltner wrote:
>
> Any ideas why there would be such a _huge_ performance hit after  
> deleting and re-inserting records for a while?
Without deletes/inserts the reads are sequential, and the OS and/or the 
drive/controller are reading ahead for you, hiding much of the disk read 
and seek times.

After fragmentation reads are (to some extent) random, and fancy 
read-aheads do not help.

Instead of deleting, could you just somehow mark obsoleted rows as 
"deleted" (possibly with a new column, but probably some existing column 
could just have a unique value for that)? The file would grow a lot 
larger, and you would be doing a lot of unneeded reads, but the fact 
that they are sequential might more than make up for that.

Just a thought.


Gerry


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

Reply via email to