From: | Dave Cramer <pg(at)fastcrypt(dot)com> |
---|---|
To: | "Behl, Rohit ((Infosys))" <Rohit(dot)Behl(at)uk(dot)bp(dot)com> |
Cc: | <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Jdbc/postgres performance |
Date: | 2006-10-22 15:11:17 |
Message-ID: | 5D3EE611-A725-44D3-9FA5-35D7FE938BF2@fastcrypt.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On 17-Oct-06, at 3:05 PM, Behl, Rohit ((Infosys)) wrote:
> Hi
>
> We are facing performance problems in postgres while executing a
> query. When I execute this query on the server it takes 5-10
> seconds. Also I get good performance while executing this query
> from my code in java with the hard codes values. I face severe
> performance problems when I run it using a prepared statement.
>
> The query is as follows:
>
> Select events.event_id, ctrl.real_name, events.tsds, events.value,
> events.lds, events.correction, ctrl.type, ctrl.freq from
> iso_midw_data_update_events events, iso_midw_control ctrl where
> events.obj_id = ctrl.obj_id and events.event_id > 68971124 order by
> events.event_id limit 2000
>
> The above query executes in 5-10 seconds.
>
> However the below query executes in 8 mins:
>
> Select events.event_id, ctrl.real_name, events.tsds, events.value,
> events.lds, events.correction, ctrl.type, ctrl.freq from table
> events, iso_midw_control ctrl where events.obj_id = ctrl.obj_id and
> events.event_id > ?::bigint order by events.event_id limit ?
> setLong(1, 68971124);
>
> setInt(2, 2000);
>
> The table has close to 5 million rows. The table has the following
> index:
>
> iso_midw_data_update_events_event_id_key
>
> iso_midw_data_update_events_lds_idx
>
> iso_midw_data_update_events_obj_id_idx
>
>
> The table is described as follows:
>
> Columns_name data_type type_name column_size
>
> lds 2 numeric 13
>
> obj_id 2 numeric 6
>
> tsds 2 numeric 13
>
> value 12 varchar 22
>
> correction 2 numeric 1
>
> delta_lds_tsds 2 numeric 13
>
> event_id -5 bigserial 8
>
> Please tell me what I am missing while setting the prepared
> statement. I am using postgres7.4.2. and postgresql-8.1-407.jdbc3.jar.
Try the same query with protocolVersion=2. There are some issues with
prepared statements being slower if the parameters are not the same
type as the column being compared to.
protocol version 2 will issue the query exactly the same as psql
does. Also note that your two queries are not identical. In the
prepared query you cast to bigint ?
Version 8.1.x handles this better I think.
>
> Thanks
>
>
> Regards
>
> Rohit
>
From | Date | Subject | |
---|---|---|---|
Next Message | Bucky Jordan | 2006-10-22 18:59:39 | Re: New hardware thoughts |
Previous Message | Ben Suffolk | 2006-10-21 18:17:37 | Re: Optimizing disk throughput on quad Opteron |