pavan95 wrote
> *Query*:
>
> explain select ... from tms_timesheet_details, tms_wsr_header header
> where wsr_header_id=header.id and work_order_no != 'CORPORATE';
>
> QUERY PLAN
> ---------------------------------------------------------------------------------------------
> Aggregate (cost=9868.91..9868.92 rows=1 width=8)
> -> Hash Join (cost=608.27..5647.67 rows=70354 width=8)
> Hash Cond: (tms_timesheet_details.wsr_header_id = header.id)
> -> Seq Scan on tms_timesheet_details (cost=0.00..3431.14
> rows=72378 width=12)
> Filter: ((work_order_no)::text <> 'CORPORATE'::text)
> -> Hash (cost=399.23..399.23 rows=16723 width=4)
> -> Seq Scan on tms_wsr_header header (cost=0.00..399.23
> rows=16723 width=4)
> (7 rows)
>
>
> --
> Sent from:
> http://www.postgresql-archive.org/PostgreSQL-performance-f2050081.html
Why is the table tms_wsr_header in the from clause as it is not used in the
select columns? A simple "wsr_header_id is not null" would do the same as
this is a foreign key into the tms_wsr_header table. An index with on
tms_timesheet_details.id "where wsr_header_id is not null" might then speed
the query up if there were significant numbers of rows with a null
wsr_header_id.
Cheers
Matthew
--
Sent from: http://www.postgresql-archive.org/PostgreSQL-performance-f2050081.html