Could you please provide us with the database schema, or perhaps even
a short script that demonstrates your problem, so that we can try to
debug it?

On 9/29/18, Stephen F. Booth <m...@sbooth.org> wrote:
> A query that ran fine under SQLite 3.24 is substantially slower in 3.25:
>
> SQLite version 3.24.0 2018-06-04 19:24:41
>> .timer on
>> select a.id from a join c on a.id = case when c.b_a_name is not null then
> c.b_a_id else c.a_id end where a.id in (select a_fts.rowid from a_fts where
> a_fts match 'r*' order by rank) group by a.id;
> Run Time: real 0.037 user 0.019868 sys 0.016376
>
> SQLite version 3.25.0 2018-09-15 04:01:47
>> .timer on
>> select a.id from a join c on a.id = case when c.b_a_name is not null then
> c.b_a_id else c.a_id end where a.id in (select a_fts.rowid from a_fts where
> a_fts match 'r*' order by rank) group by a.id;
> Run Time: real 4.525 user 2.055779 sys 2.466143
>
> Performance in 3.25.1 and 3.25.2 is similar to 3.25.0.
>
> The bottleneck seems to be in the CASE portion of the query. I am not sure
> why.
>
> To try and make a valid comparison I compiled the versions identically
> using the following flags:
>
> % gcc shell.c sqlite3.c -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0
> -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS
> -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED
> -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE
> -DSQLITE_USE_ALLOCA=1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_RTREE
> -DSQLITE_ENABLE_STAT4 -DHAVE_READLINE -DHAVE_USLEEP -lreadline -Os
>
> Here is the compiler info:
> Apple LLVM version 10.0.0 (clang-1000.11.45.2)
> Target: x86_64-apple-darwin18.2.0
> Thread model: posix
>
> What could be causing this performance hit in 3.25?
>
> Thanks,
> Stephen
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>


-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to