Hello sales,

I notice a similar thing with my databases when they get to any decent
size. it seems like the first time you access them, doing anything,
there's a decent startup delay and then it's fast from that time
forward. Someone mentioned OS disk cache and I wonder about the
internal SQLite cache too.

I'm using the library directly within a program though.

C


Monday, December 19, 2005, 11:17:14 AM, you wrote:

stc> I think I've confused the issue a bit and the
stc> aforementioned time hit might be normal given:
stc> http://www.sqlite.org/lockingv3.html 

stc> We are using a separately developed COM DLL interface to
stc> Sqlite v3: http://www.sqliteplus.com/ 

stc> And we can live with the journal creation time if that is what it is.

stc> Tom

stc> ----------------------------------------
stc>  From: [EMAIL PROTECTED]
stc> Sent: Monday, December 19, 2005 6:43 AM
stc> To: sqlite-users@sqlite.org
stc> Subject: [sqlite] multiple Db's and journal file time hit? 

stc> Hello

stc> Recently it was written: whenever a modifying transaction starts (or 
rather, when it
stc> has to actually write data to disk for the first time), SQLite has to
stc> create a journal file for each DB involved as well as a master journal
stc> file. 

stc> We are testing (almost ready to purchase the $180 COM
stc> version) and have just noticed a 30-40 second hit at early on in
stc> our program running. It happens when accessing the databases but
stc> not always the same call and we are wondering if it might be
stc> related to journal file start up time OR if there is some kind of
stc> built-in pause or delay in the demo version. 

stc> Background: 

stc> a) We use two databases- one for a current run and one for long-term 
history.
stc> b) The historical database has two tables with two indexes
stc> (an integer (hash code) and a date column) and is set to
stc> synchronous = Normal
stc> c) The current-run database has one table with two indexes
stc> (an integer (hash code) and another integer) and is set to
stc> synchronous = OFF. Note: we blow away the current-run database
stc> each time a certain process is kicked off and there is never more
stc> than one current-run db-- so if the data is lost from the current
stc> run it is no big deal.
stc> d) It is a Win32 application and PRAGMA page_size = 4096.
stc> e) System memory is 512MB and PRAGMA cache_size = 65536
stc> f) Inserts are bundled into one transaction, sometimes as
stc> many as 800 at a shot before .Exec(COMMIT) is called.
stc> g) No database error codes were generated.
stc> h) There are no other programs running when our application
stc> is running and Windows Task Manager (processes and performance)
stc> shows no unusual activity. 

stc> Description: Program runs, inserts between 500 and 800
stc> records into the current-run db, and then at various points in
stc> reads/inserts (within 10 seconds after the first big insert) the
stc> 30-40 second hit will occur.

stc> Important note: once that 30-40 second hit is done the
stc> program runs great-- for up to 12 hours in fact doing hundreds of
stc> thousands of transactions and with great speed. And it only
stc> stopped after 12 hours because we completed our tests.

stc> We want to buy it but are concerned about the 30-40 second hit.

stc> Anyone got an idea what might be going on?

stc> Thanks much,

stc> Tom Nicholas
stc> http://www.thntech.com 





-- 
Best regards,
 Teg                            mailto:[EMAIL PROTECTED]

Reply via email to