Re: Join Bad Performance on different data types - Mailing list pgsql-general

From Pavel Stehule
Subject Re: Join Bad Performance on different data types
Date
Msg-id CAFj8pRCu0yzfH6nREYDc46XNscLYOjSfWadDw7p1NDf9wbxPdg@mail.gmail.com
Whole thread Raw
In response to Join Bad Performance on different data types  (Adarsh Sharma <eddy.adarsh@gmail.com>)
List pgsql-general
Hello

PostgreSQL doesn't use index when types on left and right part are not equal.

Probably you lost some index - you can see a difference in EXPLAIN SELECT ...

Regards

Pavel


2014-03-04 7:57 GMT+01:00 Adarsh Sharma <eddy.adarsh@gmail.com>:
Hi,

Today i need to change datatype of one of my tables from bigint to bigint[] due to
application requirements. But One of my query hangs after this change :-

select DISTINCT glt.id || ':' || gtt.name as id_type, glt.name, latitude, longitude, radius, latitude || ',' || longitude as latlon from graph1 glt, graph2 gcr, graph3 gtd, graph5 td, graph6 gtt where gtt.id=td.entity_type_id AND glt.id=ANY(gtd.id_list) and gtd.id = gcr.t_ids) AND gcr.id=ANY(td.detail_id);

Explain Analyze Expected time :  Total runtime: 19460.809 ms

select DISTINCT glt.id || ':' || gtt.name as id_type, glt.name, latitude, longitude, radius, latitude || ',' || longitude as latlon from graph1 glt, graph2 gcr, graph3 gtd, graph5 td, graph6 gtt where gtt.id=td.entity_type_id AND glt.id=ANY(gtd.id_list) and gtd.id = ANY(gcr.t_ids) AND gcr.id=ANY(td.detail_id);

Query not finishing from last 1 hour. Tables size are ~ 5k rows and fairly small tables.

I tried creating simple and gin indexes on the column(t_ids) but still not helping. Anyone has any idea or faced this before. Postgresql version is 9.2.

Thanks




pgsql-general by date:

Previous
From: Sameer Kumar
Date:
Subject: Re: Join Bad Performance on different data types
Next
From: Adarsh Sharma
Date:
Subject: Re: Join Bad Performance on different data types