Am 20.08.2010 13:38, schrieb Max Vlasov: >> In my case (which is certainly not typical), a (several GB) large >> database is built up in several batches, one table at a time, while in >> parallel many intermediate files on the disk are created. This resulted >> in a very fragmented database file. After that, also several times, the >> data is selected in a way that uses 80-90% of the data in the database, >> using joins of all tables and sorting. >> >> ... >> >> With the new feature available, i can remove my own workaround, which >> does not work so well annyway. Many thanks to the developers. >> >> > Martin, you gave a good example of the case when this really helps. Although > I suppose you still need some tweaking. As Dan Kennedy wrote you have to set > the the parameter and "From that point on, connection "db" extends and > truncates the db file in 1MB chunks". So for example if you just created a > db and maybe did minor changes to the db and have plans to extend it to > larger size, you have to set SQLITE_FCNTL_CHUNK_SIZE with > sqlite3_file_control and also write something new and not only write but be > sure it's not going to be written to a previously disposed page. > > As long as cases like yours is real and can be used in real life, maybe a > change to existing freelist_count pragma is possible? If it is writable > (PRAGMA freelist_count=1024;), sqlite compares the value supplied with the > current count and if it is bigger allocates necessary space. It seems this > syntax will be straightforward and self-explaing. What you think? > > Max
Hello Max, Personally, I use the C Api and do not need any other interface to the functionality. If you make PRAGMA freelist_count writable as you suggest, I would expect the database to reserve space once, and not use a larger pice of the disk every time ist has to be expanded in the future. Martin > _______________________________________________ > 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