Dnia 2003-11-28 20:18, Użytkownik Tom Lane napisał:
Hard to say much when you didn't actually show us the output of EXPLAIN
ANALYZE.

OK, Here you are:


explain analyze select *
from plany pl
join linia_trasy lt using (id_linii)
join kursy k on (k.id_trasy=lt.id_trasy and k.event_date=pl.begindate+lt.offset)
where pl.id_planu=508;


event_date - date
begindate - date
id_linii - integer
id_trasy - integer
offset - integer

QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------
Hash Join (cost=5.82..1210.68 rows=2 width=40) (actual time=718.11..759.27 rows=5 loops=1)
Hash Cond: ("outer".id_trasy = "inner".id_trasy)
Join Filter: ("outer".event_date = ("inner".begindate + "inner".offset))
-> Seq Scan on kursy k (cost=0.00..876.07 rows=58707 width=11) (actual time=0.02..547.65 rows=58707 loops=1)
-> Hash (cost=5.81..5.81 rows=7 width=29) (actual time=0.43..0.43 rows=0 loops=1)
-> Nested Loop (cost=0.00..5.81 rows=7 width=29) (actual time=0.16..0.37 rows=7 loops=1)
Join Filter: ("outer".id_linii = "inner".id_linii)
-> Index Scan using plany_pkey on plany pl (cost=0.00..4.49 rows=1 width=17) (actual time=0.09..0.11 rows=1 loops=1)
Index Cond: (id_planu = 508)
-> Seq Scan on linia_trasy lt (cost=0.00..1.14 rows=14 width=12) (actual time=0.02..0.12 rows=14 loops=1)



If I add "and k.id_trasy=lt.id_trasy" into where clause (duplicate), the query works fine.


Regards,
Tomasz Myrta


---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to