>>> Надо привести explain запроса, когда используется правильный индекс.
>> вот
>>> EXPLAIN ANALYZE SELECT
> ...
>> Index Scan using edispatcher_orders_service_idx on orders o (cost=
> 0.28..9592.12 rows=2449 width=1867) (actual time=0.031..0.099 rows=5 loops=1)
>> Видно что он в ~2000 раз быстрее выполняется.
>> Но чтобы использовался этот индекс приходится удалить один из двух других
> А, скажите, вы статистику давно собирали? А то что-то в обоих случаях промах уж
> совсем большой получается.
ANALYZE в смысле давно ли делал?
дык я эти индексы удалял и заново создавал.
и ANALYZE соответственно делал после каждой операции создания/удаления
индекса.
кроме того CREATE INDEX CONCURRENTLY насколько я знаю ANALYZE делает
сама, но впрочем я всегда явно делаю когда что-то в индексах меняю.
> И, кстати, с any запрос переписать не пробовали?
а там разницы нет
везде пишем status IN а Pg его переделывает в = ANY
переписывание запроса к = ANY не приводит ни к каким изменениям
EXPLAIN
--
. ''`. Dmitry E. Oboukhov
: :’ : email: unera@debian.org jabber://UNera@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537