Re: Optimizing NOT IN plans / verify rewrite

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Re: Optimizing NOT IN plans / verify rewrite
Дата
Msg-id 4C56D6490200002500034093@gw.wicourts.gov
обсуждение исходный текст
Ответ на Optimizing NOT IN plans / verify rewrite  (Maciek Sakrejda <msakrejda@truviso.com>)
Ответы Re: Optimizing NOT IN plans / verify rewrite  (Maciek Sakrejda <msakrejda@truviso.com>)
Список pgsql-performance
Maciek Sakrejda <msakrejda@truviso.com> wrote:

> DELETE FROM foo WHERE type = 'o' AND b NOT IN (SELECT cqc.b FROM
> bar cqc) AND b NOT IN (SELECT car.b FROM foo car WHERE car.type !=
> 'o');

Can "b" be null in any of these tables?  If not, then you can
rewrite your query to us NOT EXISTS and have the same semantics.
That will often be much faster.  Something like:

DELETE FROM foo
  WHERE type = 'o'
    AND NOT EXISTS (SELECT * FROM bar cqc where cqc.b = foo.b)
    AND NOT EXISTS (SELECT * FROM foo car WHERE car.b = foo.b
                    AND car.type <> 'o');

-Kevin

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

Предыдущее
От: Maciek Sakrejda
Дата:
Сообщение: Optimizing NOT IN plans / verify rewrite
Следующее
От: Maciek Sakrejda
Дата:
Сообщение: Re: Optimizing NOT IN plans / verify rewrite