Re: [GENERAL] typecast for index

Поиск
Список
Период
Сортировка
От Ed Loehr
Тема Re: [GENERAL] typecast for index
Дата
Msg-id 38A7939E.2CB0762E@austin.rr.com
обсуждение исходный текст
Ответ на typecast for index  ("John Henderson" <jrh@is.com.fj>)
Список pgsql-general
John Henderson wrote:
>
> This is what I want to do:
> select user_name, date_trunc('minutes',sum(is_roundup_01(sess_time)))
>                         from sessions_feb2000_homer s where
>                         date_part('epoch',start)>'949316399' and
>                         date_part('epoch',start)<'951822000' and
> prob here>    user_name IN (select username from userdir
>                         where towncode = 'LAB')
>                         group by user_name
>                         order by user_name;
>
> The problem is that user_name = 'soandso' will use an index scan
> but user_name IN (select ...) uses a sequential scan.
>
> Any advice on how to force this to use an index?
> Yes the index exists, yes it has been vaccuumed. This is PG 6.5.3

IIRC, this is a known issue with 'IN', and that the traditional
solution was to replace use of 'IN' with 'EXISTS', i.e.,

    and EXISTS (select * from userdir where user_name = username and
towncode...)

Cheers,
Ed Loehr

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

Предыдущее
От: "John Henderson"
Дата:
Сообщение: typecast for index
Следующее
От: Yury Don
Дата:
Сообщение: ...