Given my understanding of the codebase (you get to decide what that's worth), the value of the synchronous pragma determines decisions going forward, so changing it mid-process should impact only transaction handling from that point forward. I do know, however, that there are places in the code where special consideration is given to the possibility of the synchronous pragma having been changed mid-process, so it isn't necessarily a trouble-free approach, I don't think. Changing its value only when no transaction is active would seem pretty safe to me.
-Tom > -----Original Message----- > From: pippi pohopper [mailto:[EMAIL PROTECTED] > Sent: Saturday, October 01, 2005 12:31 PM > To: sqlite-users@sqlite.org > Subject: [sqlite] How to speed up SQLite > > I'm experimenting with SQLite and found there's a big > difference in speed depending on the setting of PRAGMA SYNCHRONOUS. > > I understand that settings other than"2" for this parameter > don't guarantee that data is safely stored on disk when che > COMMIT statement terminates. > > I wonder if it is possible to mix various settings of PRAGMA > SYNCHRONOUS in the same program, i.e. issue a "PRAGMA > SYNCHRONOUS 2" before performing very important transactions > and using a lower PRAGMA SYNCHRONOUS value before performing > less important transactions. > > If this is not possible because PRAGMA SYNCHRONOUS can only > be issued once when attaching to the database, I'm > considering dividing to workload between two processes or > threads that write on the same database. One thread woud use > "PRAGMA SYNCHRONOUS 2" and would be responsible for critical > database updates and the other thread would use "PRAGMA > SYNCHRONOUS 0" and would be responsible for less critical updates. > > Anybody knows if either of this two solutions will work > reliably ? Which one is the best (in terms of data safety) ? > > Thank you, bye > > > > --------------------------------- > Yahoo! Messenger: chiamate gratuite in tutto il mondo >