Thats problematic. It means I have to guess how long my analyze might take,
and guess at a suitable time when that scan wont block other clients. Its a
good reason to never call analyze.

Does it have to be so? It seems to me (possibly naively) that the scan
could be performed in one long read transaction, then a separate quick
write transaction could be used to update the stat tables. Theres no need
for the whole operation to be atomic, right?

On 5 October 2017 at 00:37, Simon Slavin <slav...@bigfraud.org> wrote:

>
>
> On 5 Oct 2017, at 12:07am, Toby Dickenson <t...@tarind.com> wrote:
>
> > How does PRAGMA optimize or ANALYSE affect concurrency? Is there any
> > risk that it might leave the database locked for the full duration of
> > the scan?
>
> ANALYZE does this every time.  It’s not possible to analyze a database
> while it’s being changed.
>
> I’d expect "PRAGMA optimize" to do the same but I’m not sure.
>
> Simon.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to