Re: Slow query: Select all buildings that have >1 pharmacies and >1 schools within 1000m

Поиск
Список
Период
Сортировка
От Stefan Keller
Тема Re: Slow query: Select all buildings that have >1 pharmacies and >1 schools within 1000m
Дата
Msg-id CAFcOn28SbLbQ+3HtNXhSUiwiQ93un_PPP8sSA=Ut1kH_TyFtSA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Slow query: Select all buildings that have >1 pharmacies and >1 schools within 1000m  ("Tomas Vondra" <tv@fuzzy.cz>)
Ответы Re: Slow query: Select all buildings that have >1 pharmacies and >1 schools within 1000m  ("Tomas Vondra" <tv@fuzzy.cz>)
Список pgsql-performance
Your proposal lacks the requirement that it's the same building from
where pharmacies and schools are reachable.
But I think about.

Yours, S.

2012/8/7 Tomas Vondra <tv@fuzzy.cz>:
> On 7 Srpen 2012, 14:01, Stefan Keller wrote:
>> Hi
>>
>> I have an interesting query to be optimized related to this one [1].
>>
>> The query definition is: Select all buildings that have more than 1
>> pharmacies and more than 1 schools within a radius of 1000m.
>>
>> The problem is that I think that this query is inherently O(n^2). In
>> fact the solution I propose below takes forever...
>
> What about plain INTERSECT? Something like
>
> SELECT osm_id FROM osm_poi AS p, osm_polygon b
>    WHERE p.tags @> hstore('amenity','pharmacy')
>    AND ST_DWithin(b.way,p.way,1000)
> INTERSECT
> SELECT osm_id FROM osm_poi AS p, osm_polygon b
>    WHERE p.tags @> hstore('amenity','school')
>    AND ST_DWithin(b.way,p.way,1000)
>
> Or something like that. But maybe it's a complete nonsense ...
>
> Tomas
>

В списке pgsql-performance по дате отправления:

Предыдущее
От: Ioannis Anagnostopoulos
Дата:
Сообщение: Re: Sequential scan instead of index scan
Следующее
От: "Tomas Vondra"
Дата:
Сообщение: Re: Slow query: Select all buildings that have >1 pharmacies and >1 schools within 1000m