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 по дате отправления: