не работает индекс по таблице

Поиск
Список
Период
Сортировка
От Genix
Тема не работает индекс по таблице
Дата
Msg-id 435A4554.6060103@list.ru
обсуждение исходный текст
Список pgsql-ru-general
Приветствую!

Имеем несколько действий:

drop table t1;

select post_addresses_id into t1 from persons where $условие;

create index t1_ on t1 (post_addresses_id);

select count(*) from addresses where
   exists ( select addresses_id from t1 where
addresses.addresses_id=t1.post_addresses_id)

на самом деле, в последнем запросе вместо select count(*) нужно делать
удаление, но для проверки я использовал именно этот вариант, ибо оба они
выполняются одного порядка времени.

так вот, если все написано так как есть, то последний запрос выполняется
около 8 секунд (у меня небольшой, тестовый набор данных) и по обоим
таблицам идет seq_scan.

если же поменять местами две таблицы, т.е.:

select count(*) from t1 where
   exists ( select addresses_id from addresses where
addresses.addresses_id=t1.post_addresses_id)

то запрос пробегается за 40 мс и по таблице addresses подхватывается
индекс. Но ведь удалять-то надо именно из addresses, и такой вариант
условия exists уже не подходит $)


решение было найдено:
set enable_seqscan=false;

вот только возник вопрос, правильно ли что PostgreSQL так сильно ошибается?

--
У каждого в башке свои тараканы...

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

Предыдущее
От: Maxim Vetrov
Дата:
Сообщение: Кодировка
Следующее
От: Oleg Bartunov
Дата:
Сообщение: Re: Кодировка