From: | Warstone(at)list(dot)ru <warstone(at)list(dot)ru> |
---|---|
To: | pgsql-ru-general(at)postgresql(dot)org |
Subject: | Re: [pgsql-ru-general] не используется индекс |
Date: | 2012-12-28 20:55:16 |
Message-ID: | 1356728116.936751584@f49.mail.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ru-general |
1) VACUUM FULL ANALYZE orders_drivers
У вас идет промах где-то в 100 раз на этой таблице.
2) Если не поможет первое: Индекс на drivers id, sid, так как Пг считает что дешевле сначала sid отобрать, а потом построить хеш.
ЗЫ: Версия Пг какая?
Пятница, 28 декабря 2012, 22:44 +04:00 от "Dmitry E. Oboukhov" <unera(at)debian(dot)org>:
>> 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
>
From | Date | Subject | |
---|---|---|---|
Next Message | Dmitry E. Oboukhov | 2012-12-28 21:05:08 | Re: Re: [pgsql-ru-general] не используется индекс |
Previous Message | Dmitry E. Oboukhov | 2012-12-28 20:28:18 | Re: не используется индекс |