I try 320000 and it takes same time. Moreover the RAM used is about 500MB
Even with "PRAGMA synchronous = OFF;" operation time is the same.
I think the only way for now is to make more DELETE with less element, 
but it's not the best way


Il 08/10/2010 10.41, Marcus Grimm ha scritto:
> Michele Pradella wrote:
>>    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.
> 10000 doesn't sounds very big, I used to define it to e.g. 320000 instead when
> working with a GB size DB (mainly for index creation and "PRAGMA 
> integrity_check;")
>
> Maybe playing with temporary setting PRAGMA synchronous = OFF; would be 
> useful,
> although I think the wal mode should already avoid too much syncing.
>
> Marcus
>
>
>> 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
>>>>
>>>>
>>
> _______________________________________________
> 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

Reply via email to