Hello Andy,

I will have a look at it when I have time.

Please post messages like this to the OJB
users' or developers' list.

Thank you,
        Olli

 -----Original Message-----
From: Andy Malakov [mailto:[EMAIL PROTECTED]
Sent: Friday, October 31, 2003 9:57 PM
To: [EMAIL PROTECTED]
Subject: Re: Simple performance improvement Re: m:n relations mapping...


Excellent.
 
Now how about going one step further and eliminating extra SELECT ? :-)))
 
We do not need to retrieve link table entries in case of new objects.
 
Class: org.apache.ojb.broker.core.PersistenceBrokerImpl:
Method: storeCollections(Object obj, Vector vecCds, boolean insert)
Line: 789
 
Now:
...
if (cds.isMtoNRelation())
{
    currentMtoNKeys = getMtoNImplementor(cds, obj);
    // delete unused m:n implementors
    if (!insert)
    {
      deleteMtoNImplementor(cds, obj, (Collection)col, currentMtoNKeys);
    }
}
 
Better:

...
if (cds.isMtoNRelation())
{
    if (insert) {
         currentMtoNKeys = java.util.Collections.EMPTY_LIST; // assume no
link table entries exist for new objects
    } else {
         currentMtoNKeys = getMtoNImplementor(cds, obj);
         // delete unused m:n implementors
         deleteMtoNImplementor (cds, obj, (Collection) col,
currentMtoNKeys);
    }
}
....

 
I tested it with P6SPY - the above fix makes extra SELECTs disappear.
This two fixes make batch inserts of complex object work faster :-)
 
Thanks a lot for you product,
Andy
 
 
 
 
 
----- Original Message ----- 
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, October 31, 2003 4:41 AM
Subject: RE: Simple performance improvement Re: m:n relations mapping...


> Hello,
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > 
> > I am uncertain whether we should fix it because it does
> > mean a (very minor) change of behaviour.  I tend to 'yes'.
> 
> I have just committed a fix.
> 
> Olli
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to