Re: Query Performance and IOWait - Mailing list pgsql-performance

From Andrew Janian
Subject Re: Query Performance and IOWait
Date
Msg-id CE10B12929C8584090A3A10DCA0DAE710D1E6F01@exchstl1.scottrade.com
Whole thread Raw
In response to Query Performance and IOWait  ("Andrew Janian" <ajanian@scottrade.com>)
Responses Re: Query Performance and IOWait  ("Joshua D. Drake" <jd@commandprompt.com>)
List pgsql-performance
I have run ANALYZE right before running this query.

I will run EXPLAIN ANALYZE when I can.  I started running the query when I sent the first email and it is still
running. Looke like it longer than an hour. 

I will post the results of EXPLAIN ANALYZE in a few hours when I get them.

Thanks for all your help,

Andrew

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Thursday, November 18, 2004 9:40 AM
To: Andrew Janian
Cc: pgsql-performance@postgresql.org
Subject: Re: [PERFORM] Query Performance and IOWait


"Andrew Janian" <ajanian@scottrade.com> writes:
>

                                 QUERY PLAN 
> Nested Loop IN Join  (cost=0.00..34047.29 rows=1 width=526)
>   ->  Index Scan using mfi_log_time on mb_fix_message  (cost=0.00..22231.31 rows=2539 width=526)
>        Index Cond: ((msg_log_time > '2004-06-01 00:00:00'::timestamp without time zone) AND (msg_log_time <
'2004-06-0123:59:59.999'::timestamp without time zone)) 
>        Filter: (((msg_message_type)::text = '8'::text) AND (((mb_raw_text)::text ~~ '%39=1%'::text) OR
((mb_raw_text)::text~~ '%39=2%'::text))) 
>   ->  Index Scan using mfi_client_ordid on mb_fix_message  (cost=0.00..445.56 rows=1 width=18)
>        Index Cond: (("outer".msg_client_order_id)::text = (mb_fix_message.msg_client_order_id)::text)
>        Filter: ((msg_log_time >= '2004-06-01 00:00:00'::timestamp without time zone) AND (msg_log_time < '2004-06-01
13:30:00'::timestampwithout time zone) AND ((msg_message_type)::text = 'D'::text) OR ((msg_message_type)::text =
'G'::text))AND ((mb_ord_type)::text = '1'::text)) 

> While running, this query produces 100% iowait usage on its processor and takes a ungodly amount of time (about an
hour).

This plan looks fairly reasonable if the rowcount estimates are
accurate.  Have you ANALYZEd the table lately?  You might need to
bump up the statistics target for the msg_log_time column to improve
the quality of the estimates.  It would be useful to see EXPLAIN
ANALYZE results too (yes I know it'll take you an hour to get them...)

            regards, tom lane

pgsql-performance by date:

Previous
From: Tom Lane
Date:
Subject: Re: Query Performance and IOWait
Next
From: "David Parker"
Date:
Subject: Re: query plan question