Re: NOT IN doesn't use index? (fwd)

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: NOT IN doesn't use index? (fwd)
Дата
Msg-id 3EB41900.5010407@joeconway.com
обсуждение исходный текст
Ответ на Re: NOT IN doesn't use index? (fwd)  (Becky Neville <rebecca.neville@yale.edu>)
Ответы Re: NOT IN doesn't use index? (fwd)
Список pgsql-performance
Becky Neville wrote:
> Well I think you answered my question already, but just in case
> here are the explain results again and the query follows (I warned, it is
> long.)  And I did run VACUUM ANALYZE beforehand.

[snipped ugly query with three NOT IN clauses]

Hmmm, no surprise that's slow. How are those three lists of constants
generated? One idea is to recast this as a left join with a FROM clause
subselect, e.g.

select
  uabopen_srat_code
from
  uabopen u left join
  (select '1F' as uabopen_srat_code union all
          '1FD' union all
          '3A' ...) as ss
  on u.uabopen_srat_code = ss.uabopen_srat_code
where ss.uabopen_srat_code is null;

But I'm not sure that will be much quicker. If the list of
uabopen_srat_code you're filtering on comes from one of the other
tables, you might be able to do better -- back to the question above,
how is that list generated? What do the other table look like?

Joe


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

Предыдущее
От: Becky Neville
Дата:
Сообщение: Re: NOT IN doesn't use index? (fwd)
Следующее
От: Becky Neville
Дата:
Сообщение: Re: NOT IN doesn't use index? (fwd)