On Wed, Aug 26, 2015 at 4:29 AM, Henrik Thostrup Jensen <h...@nordu.net>
wrote:

> On Wed, 26 Aug 2015, Emre Hasegeli wrote:
>
> Are the coverage operatons just that expensive?
>>>
>>
>> They shouldn't be.  A similar query like yours works in 0.5 second on my
>> laptop:
>>
> [snip]
>
> I get the same from your testcase.
>
> Maybe, something we haven't expected about your dataset causes a
>> performance regression on the index.  Did you see anything relevant on
>> the server logs on index creation time?
>>
>
> I tried dropping and re-creating the index. The only log entry was for the
> drop statement.
>
> The distribution of the data is not uniform like the data set you produce.
> Though I find it hard to believe that it would affect this as much.
>
> select masklen(route), count(*) from routes group by masklen(route);
>

Any chance you can share the actual underlying data?  I noticed it wasn't
on github, but is that because it is proprietary, or just because you don't
think it is interesting?


> irrexplorer=> explain analyze select routes.route from routes join hmm on
> routes.route && hmm.route;
>                                                                QUERY PLAN
>
> ----------------------------------------------------------------------------------------------------------------------------------------
>  Nested Loop  (cost=0.41..511914.27 rows=2558 width=7) (actual
> time=8.096..17209.778 rows=8127 loops=1)
>    ->  Seq Scan on hmm  (cost=0.00..11.32 rows=732 width=7) (actual
> time=0.010..0.609 rows=732 loops=1)
>    ->  Index Only Scan using route_gist on routes  (cost=0.41..470.32
> rows=22900 width=7) (actual time=4.823..23.502 rows=11 loops=732)
>          Index Cond: (route && (hmm.route)::inet)
>          Heap Fetches: 0
>  Planning time: 0.971 ms
>  Execution time: 17210.627 ms
> (7 rows)
>

If you loop over the 732 rows yourself, issuing the simple query against
each retrieved constant value:

explain (analyze,buffers) select routes.route from routes where route && $1

Does each one take about the same amount of time, or are there some outlier
values which take much more time than the others?

Cheers,

Jeff

Reply via email to