Hi, I'm experimenting with the new code in SQLite's trunk and measuring the improvements in index creation. The I/O required to create index and also the disk space requirements has reduced significantly, so the CREATE INDEX is now dominated by CPU time. Almost no memory is used for cache though, which I find odd.
The time to create an index on my 266 Mb experimental database is more than 9 minutes. The database is available at http://www.emclient.com/temp/mail_index.zip and the command I use to create the index is CREATE INDEX "idx_MailAddresses_address" ON "MailAddresses" ("type", "address", "parentId"); I had run the shell under profiler and most of the time is spent in the following code path: Name / Inclusive % time / Exclusive % time sqlite3BtreeInsert / 76,68 / 0,40 .. btreeMoveto / 47,75 / 0,18 .... sqlite3BtreeMovetoUnpacked / 40,49 / 3,33 ...... sqlite3VdbeRecordCompare / 27,04 / 4,69 ........ sqlite3MemCompare / 15,36 / 7,85 I'm wondering if there's any way to speed up the index creation. Is larger cache size supposed to improve the performance? Did I perhaps hit some "worst case" scenario? Best regards, Filip Navara _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users