On Mon, Aug 16, 2010 at 4:46 AM, L L <[email protected]> wrote:

> Hi all,
> I have noticed a performance regression of 10 times in my db changing from
> version 3.6.32.1 to the 3.7.0.1.. It takes now 30 seconds against 3 seconds
> and query plans are different.
>

Please try again with the snapshot at

    http://www.sqlite.org/draft/download.html

And let us know if the problem persists.  Perhaps this has been fixed by

    http://www.sqlite.org/src/info/e4b8a2ba6e


>
> Considering that table:
> customers have 800000 records
> catalogues 60000 records
> cronocatalogues 2600000
> catalogues_customers 2000
>
> This is my database:
>
> CREATE TABLE anagraphics (
>  idanagraphic        integer PRIMARY KEY AUTOINCREMENT,
>  name          text COLLATE NOCASE,
>  anagraphictype      text
> );
> CREATE TABLE CRONOcatalogues
> (
>       idcrca INTEGER PRIMARY KEY AUTOINCREMENT,
>       idcatalogue INTEGER,
>       date DATETIME,
>       validfrom DATETIME
> );
> CREATE TABLE catalogues
> (
>       idcatalogue INTEGER PRIMARY KEY AUTOINCREMENT,
>       cataloguename TEXT,
>       idanagraphic INTEGER,
>       type TEXT,
>       active TEXT
> );
> CREATE TABLE catalogues_anagraphics
> (
>       idcc INTEGER PRIMARY KEY AUTOINCREMENT,
>       idcatalogue INTEGER,
>       idanagraphic INTEGER,
>       datereceived DATETIME
> );
> CREATE INDEX "idxanagraphictype"
> ON "anagraphics" ("anagraphictype");
> CREATE INDEX "idxdate"
> ON "CRONOcatalogues" ("date");
> CREATE INDEX "idxidcatalogue"
> ON "catalogues_anagraphics" ("idcatalogue" ASC);
> CREATE INDEX "idxidcatalogue2"
> ON "CRONOcatalogues" ("idcatalogue" ASC, "validfrom" ASC);
> CREATE INDEX "idxidanagraphic"
> ON "catalogues_anagraphics" ("idanagraphic" ASC);
>
>
> This is my query:
>
>    select distinct tbl2.idcatalogue as idcatalogue, tbl2.type as type,
> tbl2.idanagraphic as idanagraphic, tbl2.maxdate as maxdate,
> anagraphics.name as nameforniture
>    ,catalogues.cataloguename, anagraphics2.name as anagraphic
>    from
>    (
>        select tbl.idcatalogue as idcatalogue, type, idanagraphic,
>  tbl.maxdate as maxdate from catalogues
>        inner join
>        (
>        select max(validfrom) as maxdate, idcatalogue from CRONOcatalogues
>        group by idcatalogue
>        ) as tbl on catalogues.idcatalogue=tbl.idcatalogue
>        and catalogues.active='s'
>    ) as tbl2
> inner join anagraphics on tbl2.idanagraphic = anagraphics.idanagraphic
> inner join catalogues on tbl2.idcatalogue = catalogues.idcatalogue
>  INNER JOIN catalogues_anagraphics ON
> TBL2.idcatalogue=catalogues_anagraphics.idcatalogue
> INNER JOIN anagraphics as anagraphics2 ON
> anagraphics2.idanagraphic=catalogues_anagraphics.idanagraphic
> WHERE catalogues_anagraphics.datereceived<TBL2.maxdate
> order by nameforniture
>
> I cannot explain this regression, may be something related to subqueries?
> Thanks
>
>
>
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
D. Richard Hipp
[email protected]
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to