[sqlite] (no subject)
a href=http://tourism.singapore18.com/wp-content/uploads/cache/02efpk.html; http://tourism.singapore18.com/wp-content/uploads/cache/02efpk.html/a ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Slow INSERT on fast machine, fast INSERT on slow machine
I found that win function FlushFileBuffers (used by SQLite) slows down performances, but still don't have explanation why this funcion on some machines works 10x slower then on others. I have used win xp sp2 on all machines where I have tested the behaviour. From: Sherief N. Farouk [EMAIL PROTECTED] To: General Discussion of SQLite Database sqlite-users@sqlite.org Sent: Tuesday, November 4, 2008 5:53:16 PM Subject: Re: [sqlite] Slow INSERT on fast machine, fast INSERT on slow machine The problem is that I'm getting better performance on AMD machine with ATA disk, but 10 times slower on DualCore machine with SATA disk (both disks are at 7200 rpm)... I don't understand the source of this behaviour... OS? Tried VSTS profiler, VTune or the free CodeAnalyst to look at where the time is being spent? - Sherief ___ 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
Re: [sqlite] Slow INSERT on fast machine, fast INSERT on slow machine
Thank you, but I am aware of transaction, and I explicitly need to perform inserts out of transaction... The problem is that I'm getting better performance on AMD machine with ATA disk, but 10 times slower on DualCore machine with SATA disk (both disks are at 7200 rpm)... I don't understand the source of this behaviour... From: John Stanton [EMAIL PROTECTED] To: General Discussion of SQLite Database sqlite-users@sqlite.org Sent: Tuesday, November 4, 2008 4:11:30 PM Subject: Re: [sqlite] Slow INSERT on fast machine, fast INSERT on slow machine First, wrap your inserts into a BEGIN...COMMIT transaction. Expect the machine with the fastest disk rotation to perform the inserts fastest. Darko Filipovic wrote: Hello, I'm having following situation: Table: CREATE TABLE TEST_TABLE ( COL1 INTEGER(20) NOT NULL, COL2 INTEGER(20) NOT NULL, COL3 REAL(30,10), COL4 REAL(30,10), COL5 REAL(30,10), COL6 REAL(30,10), COL7 REAL(30,10), COL8 REAL(30,10), COL9 REAL(30,10), COL10 REAL(30,10), COL11 DATETIME NOT NULL); CREATE INDEX XI1_TEST_TABLE_COL11 ON TEST_TABLE (COL11); CREATE INDEX XI2_TEST_TABLE_COL2 ON TEST_TABLE (COL2); CREATE INDEX XI3_TEST_TABLE_COL1 ON TEST_TABLE (COL1); I'm doing following insert (100x) out of transaction: INSERT INTO TEST_TABLEVALUES ( 1, 527047, 2902.9326171875, 1180.5153808594, 177.3292846680, 850.6628417969, 0.00, 578.7066650391, 2727.7397460938, 922.6400756836, '2008-10-29 13:22:06' ); I was doing this test on: - DualCore 2.5GHz machine SATA2 disk and on - AMD Athlon 1.8GHz ATA disk. I'm getting 10 times better performances on AMD machine, then on DualCore, precisely, AMD machine took about 1 second to write 100 rows, and DualCore machine took about 10 seconds. Can someone, please, explain to me this behaviour, or even better help me to speed up DualCore test?! Thank you in advance! Darko F. ___ 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
[sqlite] Slow INSERT on fast machine, fast INSERT on slow machine
Hello, I'm having following situation: Table: CREATE TABLE TEST_TABLE ( COL1 INTEGER(20) NOT NULL, COL2 INTEGER(20) NOT NULL, COL3 REAL(30,10), COL4 REAL(30,10), COL5 REAL(30,10), COL6 REAL(30,10), COL7 REAL(30,10), COL8 REAL(30,10), COL9 REAL(30,10), COL10 REAL(30,10), COL11 DATETIME NOT NULL); CREATE INDEX XI1_TEST_TABLE_COL11 ON TEST_TABLE (COL11); CREATE INDEX XI2_TEST_TABLE_COL2 ON TEST_TABLE (COL2); CREATE INDEX XI3_TEST_TABLE_COL1 ON TEST_TABLE (COL1); I'm doing following insert (100x) out of transaction: INSERT INTO TEST_TABLEVALUES ( 1, 527047, 2902.9326171875, 1180.5153808594, 177.3292846680, 850.6628417969, 0.00, 578.7066650391, 2727.7397460938, 922.6400756836, '2008-10-29 13:22:06' ); I was doing this test on: - DualCore 2.5GHz machine SATA2 disk and on - AMD Athlon 1.8GHz ATA disk. I'm getting 10 times better performances on AMD machine, then on DualCore, precisely, AMD machine took about 1 second to write 100 rows, and DualCore machine took about 10 seconds. Can someone, please, explain to me this behaviour, or even better help me to speed up DualCore test?! Thank you in advance! Darko F. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Disk I/O error on INSERT timeout expired
Hello, I'm having two independent processes that accessing SQLite db simultaneously. Process A writes db in transaction and Process B reads the same db simultaneously. If Process B reads db and timeout for Process A expires, SQLite returns code 10 (disk I/O error) instead of 5 (sqlite busy). Is this expected behaviour? Thanks, Darko F. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Performance - SQLite ODBC against SQLite C API on SLES10
Hello, I'm doing some performance tests comparing SQLite ODBC and SQLite C API (both 3.5.2 version) on SLES10 (64bit). I'm inserting 1000 rows into 4 columns table (int, int64, double, int64) out of transaction and I'm getting much lower performance using SQLite API (about 10 seconds slower). In transaction, result are almost same, but sometimes it happens that ODBC is faster then SQLite C API. On Windows I'm getting much better performance using SQLite C API, especially in transaction. Have you any idea what could cause this, or have you any reasonable explanation for this behavior? Darko F. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] transaction recovery question
The thing is that my system sometimes produces malformed database, but I don't know what cause that. I'm trying to collect possible cases when database gets malformed. I'm going in this direction because it is not possible to debug system to reproduce condition. Because of that question is: can lack of journal file produce malformed database file? Greetings, Darko F. Igor Tandetnik wrote: Darko Filipovic [EMAIL PROTECTED] wrote: I've tried...(not with UFO :D ). Nothing happens, database is not corrupted and that is what confuses me...I thought it should not be readable (malformed) ?! Not necessarily. Suppose you issued an update statement that was supposed to update 100 records. Before the process crashed, 50 of them were successfully updated (e.g. they just happened to sit on the same page), but the other 50 were not. The database is not physically corrupted - the table and record structure is intact. But it's logically corrupted, in that some database invariants important to your application may have been violated. Igor Tandetnik ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users __ NOD32 3154 (20080603) Information __ This message was checked by NOD32 antivirus system. http://www.eset.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] transaction recovery question
I've tried...(not with UFO :D ). Nothing happens, database is not corrupted and that is what confuses me...I thought it should not be readable (malformed) ?! Greetings, Darko F. Federico Granata wrote: 2008/6/3 Darko Filipovic [EMAIL PROTECTED]: But, what happen if journal file is deleted before starting B process? what if a UFO stole your pc ? :-D try to delete journal file and see what happens ... ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users __ NOD32 3154 (20080603) Information __ This message was checked by NOD32 antivirus system. http://www.eset.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] transaction recovery question
But, what happen if journal file is deleted before starting B process? Pozdrav, Darko F. Igor Tandetnik wrote: Robert Lehr [EMAIL PROTECTED] wrote: I have a question about recovering from a transaction that was not completed by a process b/c it terminated abnormally, e.g., careless SIGKILL or segfault. The scenario involves multiple processes having the database open. * process A opens the database * process B opens the database * process A starts a transaction * process A terminates abnormally BEFORE completing the transaction * process B starts a transaction the database is now in an indeterminate state. what happens in process B? http://sqlite.org/atomiccommit.html When B starts a transaction, it notices a hot rollback journal left behind by process A. It then uses this journal to undo (roll back) any changes process A may have made in the database file but haven't committed. The database is restored to the state it was in before process A started its transaction. Igor Tandetnik ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users __ NOD32 3153 (20080602) Information __ This message was checked by NOD32 antivirus system. http://www.eset.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users