|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : del@anadyr.ru 2:5047/27 05 Mar 2001 17:35:35 To : All Subject : так что же делать с индексами и max()'ами в postrges? -------------------------------------------------------------------------------- NOTICE: QUERY PLAN: Aggregate (cost=22.50..22.50 rows=1 width=4) -> Seq Scan on allcalls_lastmonth (cost=0.00..20.00 rows=1000 width=4) EXPLAIN =========== очччень странный cost. Hу да ладно, ищет долго, надо индекс строить. =========== ts=# CREATE INDEX allcalls_lastmonth_calltime_idx on allcalls_lastmonth (calltime); CREATE ts=# explain select max(calltime) from allcalls_lastmonth; NOTICE: QUERY PLAN: Aggregate (cost=61031.26..61031.26 rows=1 width=4) -> Seq Scan on allcalls_lastmonth (cost=0.00..54469.61 rows=2624661 -> width=4) EXPLAIN ========== Гы, seq scan, это не совсем то, на что я надеялся. Читаем fido7.su.dbms.sql. Вычитываем про vacuum analyze. Делаем. ========== ts=# VACUUM verbose ANALYZE allcalls_lastmonth (calltime); NOTICE: --Relation allcalls_lastmonth-- NOTICE: Pages 28223: Changed 0, reaped 0, Empty 0, New 0; Tup 2624661: Vac 0, Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 84, Ma xLen 84; Re-using: Free/Avail. Space 0/0; EndEmpty/Avail. Pages 0/0. CPU 13.15s/14.05u sec. NOTICE: Index allcalls_lastmonth_calltime_idx: Pages 5181; Tuples 2624661. CPU 1.22s/10.29u sec. NOTICE: Index allcalls_lastmonth_pkey: Pages 37855; Tuples 2624661. CPU 17.73s/11.54u sec. VACUUM ts=# explain select max(calltime) from allcalls_lastmonth; NOTICE: QUERY PLAN: Aggregate (cost=61031.26..61031.26 rows=1 width=4) -> Seq Scan on allcalls_lastmonth (cost=0.00..54469.61 rows=2624661 -> width=4) EXPLAIN ========= Опять seq scan! Hу не скотина ли, ответте, уважаемые?! Однако: ========= ts=# explain select * from allcalls_lastmonth where calltime between '22 feb 2001 00:00' and '22 feb 2001 00:30'; NOTICE: QUERY PLAN: Index Scan using allcalls_lastmonth_calltime_idx on allcalls_lastmonth (cost=0.00..786.09 rows=200 width=44) EXPLAIN ========== Ага! А почему же max не удостоился чести использовать index scan? ========== p.s. postgres 7.0.1 под linux. -- wbr, Dmitry Lukin. --- Gnus v5.5/XEmacs 20.4 - "Emerald" * Origin: HumptyNet (2:5047/27@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/11997d9a6f10a.html, оценка из 5, голосов 10
|