ok I'll try with 3.7.3 DELETE is a little bit faster, and the -wal is reintegrated when I close the connection. Changing cache_size (I try 10000) DELETE takes same time to complete. Was my fault, because to close the shell connection I used Ctrl+C but this leave the -wal file. If I close with .quit the -wal file is reintegrated. I thought that Ctrl+C is like a ".quit " but it's not. Anyway if I close the DB connection with Ctrl+C and than reopen connection and close it with .quit the -wal file is not reintegrated.
Il 08/10/2010 9.56, Michele Pradella ha scritto: > I'll try to increase cache size, and I'll try operation on my Db with > the 3.7.3 anyway I already ported the Fix of the WAL issue from recent > snapshot. I'll try and let you know > > Il 08/10/2010 9.52, Marcus Grimm ha scritto: >> Michele Pradella wrote: >>> As I explain in previews email, I think that recreating the index is >>> the slowest operation I can do on my DB. >>> Anyway in my first email I ask another question about -wal file >>> Tryin to DELETE the (5 millions) records with the shell SQLITE interface >>> I can see the -wal grow up till 600MB. I can not understand why the -wal >>> is no more reintegrated, and even when I close the connection (closing >>> the shell) -wal file still exist. >>> Trying for example the statement "create table new as select * from >>> current where condition = keep;" the -wal file grow up till 1,5GB and >>> than the same, after closing shell the -wal remain. >>> >>> Moreover the operation above "create new...." terminate with a "Error: >>> disk I/O error" >>> The hard disk I use has a lot of free space and it's SATA2 hard disk, so >>> is internal >> You may try with the new 3.7.3 version, the 3.7.2 doesn't operate >> very well on win32 when doing huge transactions in wal mode. >> >> 2nd, when running sqlite with a gigabyte sized database it is useful >> to heavily increase the cache size, not sure if that helps for delete >> statements though, but it does in particular when creating indices. >> >> Marcus >> >>> Il 07/10/2010 20.38, Petite Abeille ha scritto: >>>> On Oct 7, 2010, at 6:05 PM, Michele Pradella wrote: >>>> >>>>> I have a DB of about 3GB: the DB has about 23 millions of records. [..] >>>>> the statement is trying to delete about 5 millions records and it takes >>>>> about 4-5minutes. >>>>> Is there a way to try to speed up the DELETE? >>>> Considering that you want to delete about a quarter of the records, >>>> perhaps it would be more efficient to recreate that table altogether, no? >>>> >>>> Pseudocode: >>>> >>>> create table new as select * from current where condition = keep; >>>> create index on new; >>>> drop table current; >>>> alter table rename new to current; >>>> >>>> _______________________________________________ >>>> 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 >> >> > -- Selea s.r.l. Michele Pradella R&D SELEA s.r.l. Via Aldo Moro 69 Italy - 46019 Cicognara (MN) Tel +39 0375 889091 Fax +39 0375 889080 *michele.prade...@selea.com* <mailto:michele.prade...@selea.com> *http://www.selea.com* _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users