Re: Re: [pgsql-ru-general] Re: [pgsql-ru-general] Снова подниму вопрос: как заставить pg использовать НУЖНЫЙ индекс?

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: Re: [pgsql-ru-general] Re: [pgsql-ru-general] Снова подниму вопрос: как заставить pg использовать НУЖНЫЙ индекс?
Date: 2016-01-26 10:09:20
Message-ID: 20160126100920.GY11360@vdsl.uvw.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general


>> по-хорошему надо explain analyze приводить, хотя я подозреваю, что оценка
>>> стоимости для таких индексов не очень хороша.

>> Дык я ж и привел EXPLAIN ANALYZE

> Надо привести explain запроса, когда используется правильный индекс.

вот

> EXPLAIN ANALYZE SELECT
*
FROM
"orders" "o"
WHERE

"o"."status" IN ('confirm', 'accept', 'driving', 'waiting', 'transporting')


AND "o"."gid" = '1'
AND "o"."sid" = '147'
;

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)
Index Cond: ((gid = 1) AND (sid = 147))
Total runtime: 0.197 ms
(3 строки)

Видно что он в ~2000 раз быстрее выполняется.
Но чтобы использовался этот индекс приходится удалить один из двух других
которые Pg хочет использовать в EXPLAIN приведенном в предыдущем письме.

--

. ''`. Dmitry E. Oboukhov
: :’ : email: unera(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537

In response to

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2016-01-26 10:12:29 Re: Re: [pgsql-ru-general] Re: [pgsql-ru-general] Re: [pgsql-ru-general] Снова подниму вопрос: как заставить pg использовать НУЖНЫЙ индекс?
Previous Message Nikolay Samokhvalov 2016-01-26 10:02:14 Re: [pgsql-ru-general] Re: [pgsql-ru-general] Re: [pgsql-ru-general] Снова подниму вопрос: как заставить pg использовать НУЖНЫЙ индекс?