не используется индекс

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: не используется индекс
Date: 2012-12-28 18:44:02
Message-ID: 20121228184402.GD23376@vdsl.uvw.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

> EXPLAIN ANALYZE select * FROM orders_drivers od JOIN drivers d ON d.id = od.did WHERE sid = 2;
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------
Hash Join (cost=808.82..144710.55 rows=486762 width=169) (actual time=0.276..2673.383 rows=667453 loops=1)
Hash Cond: (od.did = d.id)
-> Seq Scan on orders_drivers od (cost=0.00..100792.89 rows=11365887 width=30) (actual time=0.015..1149.398 rows=11333318 loops=1)
-> Hash (cost=807.91..807.91 rows=260 width=139) (actual time=0.248..0.248 rows=260 loops=1)
Buckets: 1024 Batches: 1 Memory Usage: 33kB
-> Bitmap Heap Scan on drivers d (cost=93.12..807.91 rows=260 width=139) (actual time=0.057..0.189 rows=260 loops=1)
Recheck Cond: (sid = 2)
-> Bitmap Index Scan on drivers_sid_idx (cost=0.00..93.05 rows=260 width=0) (actual time=0.044..0.044 rows=301 loops=1)
Index Cond: (sid = 2)
Total runtime: 2704.437 ms
(10 строк)

\d orders_drivers

Колонка | Тип | Модификаторы
---------+--------------+-------------------------------------------------------------
id | integer | NOT NULL DEFAULT nextval('orders_drivers_id_seq'::regclass)
oid | integer |
did | integer | NOT NULL
dist | numeric(8,3) |
time | integer |
tid | integer | NOT NULL
status | order_status | NOT NULL DEFAULT 'request'::order_status
Индексы:
"orders_drivers_pkey" PRIMARY KEY, btree (id)
"orders_drivers_oid_did_ukey" UNIQUE, btree (oid, did)
"orders_drivers_did_key" btree (did)
"orders_drivers_status_idx" btree (status)

\d drivers
> \d drivers
Таблица "public.drivers"
Колонка | Тип | Модификаторы
---------------+-----------------------------+------------------------
id | integer | NOT NULL
...
sid | integer | NOT NULL
...
Индексы:
"drivers_pkey" PRIMARY KEY, btree (id)
"drivers_auto_enabled_key" btree (auto_enabled) WHERE auto_enabled IS NOT NULL
"drivers_auto_order_key" btree (auto_order)
"drivers_is_bot_key" btree (is_bot) WHERE bot_latitude IS NOT NULL AND bot_longitude IS NOT NULL
"drivers_lp_time_key" btree (lp_time) WHERE lp_time IS NOT NULL
"drivers_removed_key" btree (removed)
"drivers_sid_idx" btree (sid)

почему по orders_drivers делается полный перебор?

--

. ''`. 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

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2012-12-28 20:28:18 Re: не используется индекс
Previous Message Alexey Klyukin 2012-12-21 14:31:02 Re: [pgsql-ru-general] [pgsql-ru-general] Дедлоки и FOREIGN (pg9.1.2)