From: | ihab sabiq <sabiq(dot)ihab(at)hotmail(dot)fr> |
---|---|
To: | "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | PrepareStatement and parameters data types |
Date: | 2023-08-08 19:27:35 |
Message-ID: | PRAP192MB16285D5564F9EFEFDAAD1AC2FE0DA@PRAP192MB1628.EURP192.PROD.OUTLOOK.COM |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Hello,
I was doing some experimenting to try and reduce the execution time of a query used in a PreparedStatement. To do that, I normally use the Prepare and Execute statements of Postgresql. What I notice is that explicit casting has a considerable performance impact. So using the good data types in the Prepare and avoid casting gives much better performance. My questions are :
* Does the implementation of PreparedStatment in Postgresql driver uses the Prepare and Execute
* If so why I cannot see the Prepare and the parameters type in the logs if not how can I simulate the same mechanism from the command line
* Is it possible to avoid explicit casting without getting the error could not determine data type of parameter
The query is bit complex on large tables but the main part is : cast($1 as text) is null or cast($2 as text) is null or ( field < cast(cast($3 as text) as date) and field > cast(cast($4 as text) as date) )
Thanks for your help.
Sabiq
From | Date | Subject | |
---|---|---|---|
Next Message | Edoardo Panfili | 2023-08-21 17:37:25 | The same prepared query yield "-1" the first six times and then "-1.0" |
Previous Message | Pawel Veselov | 2023-08-04 09:49:34 | Re: PGConnection.getNotifications(0) doesn't block |