On Wed, May 7, 2014 at 4:51 PM, Hinrichsen, John <jhinrich...@c10p.com>wrote:

> $ sqlite3
> SQLite version 3.7.17 2013-05-20 00:56:22
> Enter ".help" for instructions
> Enter SQL statements terminated with a ";"
> sqlite> CREATE TABLE x AS SELECT 1 AS a, 1 AS b;
> sqlite> CREATE INDEX ix ON x (a);
> sqlite> CREATE TABLE y AS SELECT 1 AS b;
> sqlite> EXPLAIN QUERY PLAN SELECT * FROM x INNER JOIN y ON x.b=y.b;
> 0|0|0|SCAN TABLE x (~1000000 rows)
> 0|1|1|SEARCH TABLE y USING AUTOMATIC COVERING INDEX (b=?) (~7 rows)
> sqlite> EXPLAIN QUERY PLAN SELECT * FROM x INNER JOIN y ON x.b=y.b WHERE
> x.a = 1;
> 0|0|0|SEARCH TABLE x USING INDEX ix (a=?) (~10 rows)
> 0|1|1|SEARCH TABLE y USING AUTOMATIC COVERING INDEX (b=?) (~7 rows)
> sqlite>
>
> $ sqlite3
> SQLite version 3.8.4.3 2014-04-03 16:53:12
> Enter ".help" for usage hints.
> Connected to a transient in-memory database.
> Use ".open FILENAME" to reopen on a persistent database.
> sqlite> CREATE TABLE x AS SELECT 1 AS a, 1 AS b;
> sqlite> CREATE INDEX ix ON x (a);
> sqlite> CREATE TABLE y AS SELECT 1 AS b;
> sqlite> EXPLAIN QUERY PLAN SELECT * FROM x INNER JOIN y ON x.b=y.b;
> 0|0|0|SCAN TABLE x
> 0|1|1|SEARCH TABLE y USING AUTOMATIC COVERING INDEX (b=?)
> sqlite> EXPLAIN QUERY PLAN SELECT * FROM x INNER JOIN y ON x.b=y.b WHERE
> x.a = 1;
> 0|0|0|SEARCH TABLE x USING INDEX ix (a=?)
> 0|1|1|SCAN TABLE y
> sqlite>
>

Do you have a database file where the 3.8.4.3 query plan really is slower?
Can you please run ANALYZE on that database and send us the content of the
"sqlite_stat1" table?


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

Reply via email to