On 04 Jul 2010, at 1:25 PM, Thomas Kellerer wrote:
> I don't think it's the driver "making" these calls. Some of them
> look like they are a result of calling severl JDBC metadata API
> functions (e.g DatabaseMetaData.getColumns() or something similar)
> which in turn are not initiated by the driver, but by the client
> software. So I would suspect the transaction manager or your ORM
> library to make those calls (and thus generating the queries)
I have managed to isolate at least one of the strange queries to a
call to the "getColumnTypeName()" method on the following object:
org.postgresql.jdbc3.Jdbc3ResultSetMetaData
The debugger catches what I think are internal fields inside the above
object called "schemaNameCache" and "tableNameCache", both of which
are null.
In theory it looks like the Jdbc3ResultSetMetaData object is firing
off database queries on calls to metadata methods over and over again.
Am I on the right track, and if so, is there a way to get the JDBC
driver's org.postgresql.jdbc3.Jdbc3ResultSetMetaData object to cache
these calls so that they aren't as expensive?
Regards,
Graham
--