Re: postgres 9 query performance
От | Andres Freund |
---|---|
Тема | Re: postgres 9 query performance |
Дата | |
Msg-id | 201101282219.29777.andres@anarazel.de обсуждение исходный текст |
Ответ на | postgres 9 query performance (yazan suleiman <yazan.suleiman@gmail.com>) |
Ответы |
Re: postgres 9 query performance
Re: postgres 9 query performance |
Список | pgsql-performance |
On Friday, January 28, 2011 06:30:19 PM yazan suleiman wrote: > I am evaluating postgres 9 to migrate away from Oracle. The following > query runs too slow, also please find the explain plan: First: explain analyze SELECT DISTINCT EVENT.ID ,ORIGIN.ID AS ORIGINID ,EVENT.PREFERRED_ORIGIN_ID AS PREFERRED_ORIGIN ,EVENT.CONTRIBUTOR ,ORIGIN.TIME ,ORIGIN.LATITUDE ,ORIGIN.LONGITUDE ,ORIGIN.DEPTH ,ORIGIN.EVTYPE ,ORIGIN.CATALOG ,ORIGIN.AUTHOR OAUTHOR ,ORIGIN.CONTRIBUTOR OCONTRIBUTOR ,MAGNITUDE.ID AS MAGID ,MAGNITUDE.MAGNITUDE ,MAGNITUDE.TYPE AS MAGTYPE FROM event.event left join event.origin on event.id = origin.eventid left join event.magnitude on origin.id = event.magnitude.origin_id WHERE EXISTS( select origin_id from event.magnitude where magnitude.magnitude >= 7.2 and origin.id = origin_id ) order by ORIGIN.TIME desc ,MAGNITUDE.MAGNITUDE desc ,EVENT.ID ,EVENT.PREFERRED_ORIGIN_ID ,ORIGIN.ID I am honestly stumped if anybody can figure something sensible out of the original formatting of the query... What happens if you change the left join event.origin on event.id = origin.eventid into join event.origin on event.id = origin.eventid ? The EXISTS() requires that origin is not null anyway. (Not sure why the planner doesn't recognize that though). Andres
В списке pgsql-performance по дате отправления: