Re: Unusual slowdown using subselects

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: Unusual slowdown using subselects
Дата
Msg-id Pine.BSF.4.21.0105161508330.29915-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Unusual slowdown using subselects  (John Aughey <jha@washucsc.org>)
Список pgsql-general
> calendar=# explain select * from schedule where schedule.owner_id in
> (select group_id from groups where user_id=101);
> NOTICE:  QUERY PLAN:
> Seq Scan on schedule  (cost=0.00..2039895.00 rows=1000000 width=40)
>   SubPlan
>     ->  Materialize  (cost=2.02..2.02 rows=1 width=4)
>           ->  Index Scan using groups_id_index on groups  (cost=0.00..2.02
> rows=1 width=4)
>
> You'll see in this one, where the first example did a index scan, this one
> with a very similar query does a seq scan.  The two queries should be
> nearly identical, but this one runs very slowly.
>
> Can anyone explain why this happens and/or how I can do a sub-select like
> this and get fast results?

Try using EXISTS rather than IN (see the FAQ for more information).


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

Предыдущее
От: "Steve Wolfe"
Дата:
Сообщение: Re: Unusual slowdown using subselects
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Restore from a dead machine.