Ok, now I see why!

  findAll( Class, Collection )

actually executes one transaction for each PK in the collection!!

Here is an excerpt of the log.


8428  openjpa  TRACE  [$Proxy26:1240220275057:task1] openjpa.jdbc.SQL -
<t 27011334, conn 15221176> executing prepstmnt 30712384 SELECT
t0.value, t1.TERMVO_ID, t1.element FROM mesh2_terms t0 LEFT OUTER JOIN
mesh2_terms_variants t1 ON t0.id = t1.TERMVO_ID WHERE t0.id = ?
[params=(String) T360914]
138430  openjpa  TRACE  [$Proxy26:1240220275057:task1] openjpa.jdbc.SQL
- <t 27011334, conn 15221176> [2 ms] spent


Is there a way I can get everything done in one batch transaction rather
than hundreds or thousands of transactions?

Thank you!
=David



On Mon, 2009-04-20 at 13:49 +0900, David Leangen wrote:
> Thank you, I'll give that a try.
> 
> 
> 
> On Fri, 2009-04-17 at 07:55 -0700, Paul Copeland wrote:
> > That sounds interesting.  You might turn on verbose logging for SQL 
> > operations (openjpa.jdbc.SQL) and see what queries are actually being 
> > executed. The logging section of the OpenJPA manual explains this.
> > 
> > On 4/17/2009 3:41 AM, David Leangen wrote:
> > > Hello,
> > >
> > > I'm not at all an expert in databases, so I don't know if this is a JPA
> > > thing or a DB thing.
> > >
> > > In any case, I'm using Postgresql. Using the findAll( Class,
> > > Collection ) method, I am doing a  lookup by PK. Since there is an index
> > > like so on the table:
> > >
> > >    "table_pkey" PRIMARY KEY, btree (id)
> > >
> > > I would have expected the lookup to be very fast.
> > >
> > > With a collection of about 100 ids, the lookup takes almost 30 seconds,
> > > which does not seem right to me.
> > >
> > >
> > > Any ideas where I should begin to look?
> > >
> > >
> > > Thanks!
> > > =David
> > >
> > >
> > >
> > >
> > >
> > >   
> > 
> 

Reply via email to