Re: difference on execution time between prepared statement in pgAdmin and through JDBC Stack - Mailing list pgsql-jdbc
From | Lars Feistner |
---|---|
Subject | Re: difference on execution time between prepared statement in pgAdmin and through JDBC Stack |
Date | |
Msg-id | 4D677BBC.8030905@uni-heidelberg.de Whole thread Raw |
In response to | Re: difference on execution time between prepared statement in pgAdmin and through JDBC Stack (Maciek Sakrejda <msakrejda@truviso.com>) |
Responses |
Re: difference on execution time between prepared statement
in pgAdmin and through JDBC Stack
Re: difference on execution time between prepared statement in pgAdmin and through JDBC Stack |
List | pgsql-jdbc |
Hello Maciek, okay, thanx for the clarifcation. Here are the server side logs for the pgAdmin case: 2011-02-25 10:42:08 CET LOG: duration: 98.226 ms statement: execute t2 (1,7429); 2011-02-25 10:42:08 CET DETAIL: prepare: prepare t2 (int4, int4) AS SELECT DISTINCT vec.*, s.statistic_difficulty as examination_difficulty, s.statistic_discriminatorypower as examination_discriminatorypower, vimc.mediacount,vis.difficulty, vis.discriminatorypower, vis.statistic_counter, virc.reviewcount, u.user_surname FROM ims_vexaminationcontent vec LEFT OUTER JOIN ims_statistic s ON vec.item_id = s.object_id AND s.examination_id = vec.examination_id LEFT OUTER JOIN ims_vitemmediacount vimc ON (vimc.item_id = vec.item_id) LEFT OUTER JOIN ims_vitemstatistic vis ON (vis.item_id = vec.item_id) INNER JOIN ims_user u on (author_id = u.user_id) LEFT OUTER JOIN ims_vitemreviewcount virc ON virc.item_id = vec.item_id WHERE ((vec.examinationcontentversion_version=$1 AND vec.examination_entityid=$2)) ORDER BY vec.examinationcontentversion_sequenceno ASC NULLS LAST Is there a chance to get the execution plan of the statement, when the statement is executed through JDBC stack? I have the same feeling about the edge case here, that is exactly why i am writing to this list;-) So still the question is how can i find out what is going on? Yesterday i also looked at the debug level logs of the jdbc driver but i found nothinng unusal. Any more hints? Thanx in advance Lars On 02/24/2011 07:38 PM, Maciek Sakrejda wrote: > A named prepared statement (which you seem to be using through > pgAdmin) is *not* the same thing as a PreparedStatement in JDBC. Most > pertinently, JDBC is using an unnamed portal to execute the query, > which delays planning until the parameters are provided. I don't think > this ever happens with a named prepared statement (it would help if > you provided server-side logs for the pgAdmin execution as well). The > deferred planning behavior typically works to your advantage, but you > may have run into some edge case here. > > Alternately, because the unnamed portal execution actually also does > the planning, I presume it's counted in the time of the statement > execution, whereas in the pgAdmin case, it looks like you're only > timing the execute, which is going against an already-planned (at > prepare time) query, so you may be comparing apples to oranges. > > --- > Maciek Sakrejda | System Architect | Truviso > > 1065 E. Hillsdale Blvd., Suite 215 > Foster City, CA 94404 > (650) 242-3500 Main > www.truviso.com > -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lars Feistner Kompetenzzentrum für Prüfungen in der Medizin Medizinische Fakultät Heidelberg, Im Neuenheimer Feld 346, Raum 013 69120 Heidelberg E-Mail: feistner@uni-heidelberg.de Fon: +49-6221-56-8269 Fax: +49-6221-56-7175 WWW: http://www.ims-m.de http://www.kompmed.de ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pgsql-jdbc by date: