Thanks Gianny,
As soon as I complete the deploy of SPECj I'm happy to work on these
features. Both will have a dramatic impact on performance so crawling
through the code base now is preparing me for that next set of work.
Regarding the it turns out that I was incorrect, the problem was not the
Date field but was a java.math.BigDecimal field. The database column is a
DOUBLE and the Java type is java.math.BigDecimal. I worked with Jeremy
earlier today on this and am working out a patch. This brings up a
question. In TranQL is there a framework to provide database specific
mappings and transforms? For instance DB2 and Oracle both provide support
for converting a DOUBLE to long, int, short, byte, float,
java.math.BigDecimal, boolean or java.lang.String. I'm not sure about
Derby. The point is that there are extensions to common drivers that
provide additional conversion that simplifies life. From what I can see
TranQL may be artificially limiting by requiring more TypeConverters than
needed based on the JDBC driver that is being used.
Also, with regard to doing JOINS and providing support for SELECT FOR UPDATE
different databases have different issues. For instance, Oracle allows a
SELECT FOR UPDATE in a JOIN and DB2 does not. Although, DB2 has specialized
predicated that would allow for an UPDATE in a JOIN that became available in
DB2 8.2. I believe sybase does not support a SELECT FOR UPDATE semantic but
can use a null UPDATE command to obtain a database lock. I guess my
question is does TranQL allow for database specific query and update
generators to be plugged inthat will allow for maximal SQL optimization ?
I'l let you know how my testing goes.
Cheers.
Matt
----- Original Message -----
From: "Gianny Damour" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, June 07, 2005 10:52 PM
Subject: Re: [openejb-dev] FindByPrimaryKey executes two Queries
Hello Matt,
I think that to do that for FindByPrimaryKey is rather simple. Yet, it
would be a non-optimal patch as it does not solve the problem as a whole.
As a matter of fact, I have started to work on CMP and CMR prefetching
(see http://issues.apache.org/jira/browse/GERONIMO-665 for more details).
Based on my current estimates, you should expect something working by end
of next week.
Meanwhile, if you want to give us a hand with respect to database
operations, here are two things that I think we want to have:
* batch updates: I think that this is an easy one and a good way to get
started with TranQL; and
* cache across transactions: I think that it is much more complex.
Please note that I am happy to provide my support if you want to work on
any of these two items.
BTW, have you been able to identify the problem associated to the
java.sql.Date field?
Thanks,
Gianny
On 8/06/2005 12:36 PM, Matt Hogstrom wrote:
I've been testing FBK and found that there are two queiries being
executed. First a SELECT is done against the PK for the bean and that is
followed by a SELECT for the columns of the bean. Performance can be
improved by executing the second query only and getting the PK and all
the coluns in one shot. Can we make the defulat for FBK and EJBQL
queries to get all the data straight away as the default.
Is this a simple change?