dynamic-static date once again
От | Tomasz Myrta |
---|---|
Тема | dynamic-static date once again |
Дата | |
Msg-id | 3BA1228A.948C3F25@lamer.pl обсуждение исходный текст |
Ответ на | dynamic-static date (Tomasz Myrta <jasiek@lamer.pl>) |
Ответы |
Re: dynamic-static date once again
|
Список | pgsql-bugs |
Tom Lane wrote: > > Tomasz Myrta <jasiek@lamer.pl> writes: > > Why the first expression is 25 times slower? > > Hard to say, when you haven't shown us the schema. (Column datatypes, > definitions of available indexes, etc are all critical information for > this sort of question.) OK Don't panic with names, They are polish ;-) 1. TABLES create table TRASY( id_trasy integer not null PRIMARY KEY, del date default '9999-12-31', nazwa varchar (80) ); create table KURSY( id_kursu integer not null PRIMARY KEY, id_trasy integer not null references TRASY, data_kursu date not null, limit_miejsc smallint not null ); 2. INDEXES trasy | CREATE UNIQUE INDEX trasy_pkey ON trasy USING btree (id_trasy int4_ops) kursy | CREATE UNIQUE INDEX kursy_pkey ON kursy USING btree (id_kursu int4_ops) kursy | CREATE INDEX ind_kurs_ ON kursy USING btree (id_trasy int4_ops, data_kursu date_ops) 3. TEST This time kursy has less rows: saik=# EXPLAIN SELECT * from kursy where id_trasy=1 and saik-# data_kursu=date('2001-12-12'); NOTICE: QUERY PLAN: Index Scan using ind_kurs_ on kursy (cost=0.00..8.19 rows=1 width=14) EXPLAIN saik=# EXPLAIN SELECT * from kursy where id_trasy=1 saik-# and data_kursu='2001-12-12'; NOTICE: QUERY PLAN: Index Scan using ind_kurs_ on kursy (cost=0.00..2.02 rows=1 width=14) I think that's all Tomek
В списке pgsql-bugs по дате отправления: