Re: Query runs very slowly in Postgres, but very fast in other DBMS

Поиск
Список
Период
Сортировка
От Ezequiel Tolnay
Тема Re: Query runs very slowly in Postgres, but very fast in other DBMS
Дата
Msg-id 425B5E66.8080905@etolnay.com.ar
обсуждение исходный текст
Ответ на Query runs very slowly in Postgres, but very fast in other DBMS  ("Andrus Moor" <eetasoft@online.ee>)
Список pgsql-sql
Andrus Moor wrote:
> SELECT dokumnr FROM rid WHERE dokumnr NOT IN
> (select dokumnr FROM dok);
...
> Is it possible to speed up this query is Postgres ? How to force Postgres to 
> use indexes for this query ?

Use IN and NOT IN only for small sets. Use JOIN (instead of IN) and LEFT 
JOIN (instead of NOT IN) for larger sets. e.g.:

SELECT rid.dokumnr
FROM rid
LEFT JOIN dok ON (dok.dokumnr = rid.dokumnr)
WHERE dok.dokumnr iS NULL;

Cheers,

Ezequiel Tolnay


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

Предыдущее
От: "Ilya A. Kovalenko"
Дата:
Сообщение: operating "inet" type
Следующее
От: "Bill Lawrence"
Дата:
Сообщение: Re: Getting the output of a function used in a where clause