We've been using 3.4.2 for a while now but on drh's recommendation we've now
upgraded to version 3.5.1, and have found performance to be a magnitude
slower than 3.4.2. We are running on Windows CE, with memory management and
threadsafe on (though disabling these does not fix the problem). 

We have an operation that runs (scanning things and populating tables), that
with version 3.4.2 on a reference test, took less than 10 seconds to
complete, on average. This test was now taking over two minutes to complete.

We are doing all the things we should with large inserts (beginning a
transaction, creating temp tables, populating, and then calling "insert or
replace into real_table select * from temp_table", and then committing). The
commits aren't taking longer -- it's the population of the temp tables, etc.
We also found that an 8K page size We're calling "PRAGMA temp_store =
MEMORY;" too.

After writing out this post, I just tried one last attempt at a fix, and it
worked. Forcibly adding FILE_FLAG_RANDOM_ACCESS to the flags in os_win.c's
winOpen fixed it. It looks like in 3.4.2, that flag was  set on all files
(journals and db's), while in 3.5, it (was) only being set on db's. Adding
it to journals too improves performance almost tenfold. This may also help
performance on desktop Windows.

-- 
View this message in context: 
http://www.nabble.com/Performance-issues-in-3.5.1-%28Windows%29-tf4581076.html#a13077176
Sent from the SQLite mailing list archive at Nabble.com.


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to