>   On 3/16/15, Paul  wrote:
> 
> > Is  doc page is
> > outdated and 'synchronous' pragma is now set for each databse separately?
> 
> It has always been that way.  The documentation has recently been
> updated to clarify that point.  See
> http://www.sqlite.org/draft/pragma.html#pragma_synchronous for the
> documentation as it will appears in the next release.
> 

Thank you for clarification, Dr.Hipp, sadly I didn't know that.

But there is still one question left. Why when my usage is

(1) open database
(2) execute 'PRAGMA synchronous = OFF;'
(3) begin transaction
(4) do some inserts/deletes/updates
(5) commit transaction
(6) close database

not a single fsync() is being invoked. But when the usage is

(1) open database
(2) execute 'PRAGMA synchronous = OFF;'
(3) attach database X
(4) execute 'PRAGMA X.synchronous = OFF;'
(5) begin transaction
(6) do some inserts/deletes/updates
(7) commit transaction
(8) close database

I observe one fsync() for directory where 'main' database is located.
Why attaching database is causing this nasty fsync() during commit, even when 
both databases have fsync() disabled?
How can I avoid it, since even directory sync is an expensive operation?

Thanks,
Paul

Reply via email to