Re: bad plan - Mailing list pgsql-sql

From Mario Dankoor
Subject Re: bad plan
Date
Msg-id 4F7D90C0.3090800@gmail.com
Whole thread Raw
In response to Re: bad plan  (Julien Cigar <jcigar@ulb.ac.be>)
Responses Re: bad plan  (Julien Cigar <jcigar@ulb.ac.be>)
List pgsql-sql
Julien,

I generally try avoid NOT predicates.
If your geo_id is an integer,  try geo_id > -1
or if it's a varchar geo_id > ''.
The idea is that geo_id > 0 is false for null values.

I don't think query optimizers are fond of NOT predicates.

SELECT  t_geo.frequence       ,ST_SetSRID(gc.geom, 4326) as geom
FROM (       SELECT  geo_id              ,count(*) AS frequence       FROM hit.context_to_context_links       WHERE
geo_id> -1       AND taxon_id= ANY (                          SELECT taxon_id                          FROM
rab.ancestors                         WHERE ancestors.subphylum_id = 18830                        ) GROUP BY geo_id
)as t_geo
 
JOIN  hit.geo_candidates gc
ON gc.id = t_geo.geo_id;









On 2012-04-05 2:08 PM, Julien Cigar wrote:
> SELECT
>   t_geo.frequence, ST_SetSRID(gc.geom, 4326) as geom
> FROM (
>   SELECT
>     geo_id , count(*) AS frequence
>   FROM
> hit.context_to_context_links
>   WHERE
>     NOT geo_id IS NULL ANDtaxon_id= ANY (
>       SELECT
>         taxon_id
>       FROM
>         rab.ancestors
>       WHERE
>         ancestors.subphylum_id = 18830
>       ) GROUP BY geo_id
> ) as t_geo
> JOIN
>   hit.geo_candidates gc ON gc.id = t_geo.geo_id; 



pgsql-sql by date:

Previous
From: Julien Cigar
Date:
Subject: Re: bad plan
Next
From: Julien Cigar
Date:
Subject: Re: bad plan