Hi,

Glauber Andrade wrote:
Hi,



I have the table "Service" with 450 registers, when I try to get all objects
it takes 4 seconds running in a Athlon XP2800+ 256Mb (ojb rc5). It is too
slow.

How could I improve it ?


Service class is "really heavy" including four 1:1 and one 1:n reference (and referenced objects itself reference objects...). By default auto-retrieve for references is enabled. This means that each Service object was materialized with all references (and all reference of the references...).


You can disable auto-retrieve in field-descriptor and only load the references when data is needed or you want update Service using
PB.retrieveReference
PB.retrieveAllReferences


or you can introduce proxy objects for your references. See
http://db.apache.org/ojb/tutorial3.html#Using Proxy Classes
Then OJB creates a proxy object for the reference and only load real objects when needed.


regards,
Armin



Thanks,





Query query = new QueryByCriteria(Service.class, null);

Iterator iter = broker.getIteratorByQuery(query);





<!-- Definitions for com.maximas.Service -->

<class-descriptor

class="com.maximas.sinret.data.Service"

table="Service"

>

<field-descriptor

name="id"

column="id"

jdbc-type="INTEGER"

primarykey="true"

autoincrement="true"

/>

<field-descriptor

name="servico"

column="SERVICO"

jdbc-type="LONGVARCHAR"

/>

<field-descriptor

name="id_leiIRRF"

column="id_leiIRRF"

jdbc-type="VARCHAR"

/>

<reference-descriptor

name="leiIRRF"

class-ref="com.maximas.Lei"

>

<foreignkey field-ref="id_leiIRRF"/>

</reference-descriptor>

<field-descriptor

name="id_leiINSS"

column="id_leiINSS"

jdbc-type="VARCHAR"

/>

<reference-descriptor

name="leiINSS"

class-ref="com.maximas.Lei"

>

<foreignkey field-ref="id_leiINSS"/>

</reference-descriptor>

<field-descriptor

name="irrf"

column="IRRF"

jdbc-type="DOUBLE"

/>

<field-descriptor

name="inss"

column="INSS"

jdbc-type="DOUBLE"

/>

<collection-descriptor

name="iss"

element-class-ref="com.maximas.ISS"

refresh="true"

orderby="cidade"

sort="DESC"

>

<inverse-foreignkey field-ref="id_servico"/>

</collection-descriptor>

<field-descriptor

name="id_contabil_PF"

column="id_contabil_PF"

jdbc-type="INTEGER"

/>

<reference-descriptor

name="contabil_PF"

class-ref="com.maximas.Contabil"

>

<foreignkey field-ref="id_contabil_PF"/>

</reference-descriptor>

<field-descriptor

name="id_contabil_PJ"

column="id_contabil_PJ"

jdbc-type="INTEGER"

/>

<reference-descriptor

name="contabil_PJ"

class-ref="com.maximas.Contabil"

>

<foreignkey field-ref="id_contabil_PJ"/>

</reference-descriptor>

<field-descriptor

name="temISS"

column="temISS"

jdbc-type="INTEGER"

/>

<field-descriptor

name="temPISCOFINS"

column="temPISCOFINS"

jdbc-type="INTEGER"

/>

</class-descriptor>



<!-- Definitions for com.maximas.Lei -->

<class-descriptor

class="com.maximas.Lei"

table="leis"

>

<field-descriptor

name="id"

column="id"

jdbc-type="VARCHAR"

primarykey="true"

/>

<field-descriptor

name="lei"

column="LEI"

jdbc-type="LONGVARCHAR"

/>

<field-descriptor

name="id_pai"

column="id_pai"

jdbc-type="VARCHAR"

/>

<reference-descriptor

name="pai"

class-ref="com.maximas.Lei"

>

<foreignkey field-ref="id_pai"/>

</reference-descriptor>



</class-descriptor>



<!-- Definitions for com.maximas.Contabil -->

<class-descriptor

class="com.maximas.Contabil"

table="contabil"

>

<field-descriptor

name="id"

column="id"

jdbc-type="INTEGER"

primarykey="true"

autoincrement="true"

/>

<field-descriptor

name="plano_conta"

column="plano_conta"

jdbc-type="VARCHAR"

/>

<field-descriptor

name="conta"

column="conta"

jdbc-type="VARCHAR"

/>

<field-descriptor

name="plano_centro"

column="plano_centro"

jdbc-type="VARCHAR"

/>

<field-descriptor

name="centro"

column="centro"

jdbc-type="VARCHAR"

/>

<field-descriptor

name="unidade"

column="unidade"

jdbc-type="VARCHAR"

/>

<field-descriptor

name="fluxo"

column="fluxo"

jdbc-type="VARCHAR"

/>

</class-descriptor>



<!-- Definitions for com.maximas.ISS -->

<class-descriptor

class="com.maximas.ISS"

table="iss"

>

<field-descriptor

name="id"

column="id"

jdbc-type="INTEGER"

primarykey="true"

autoincrement="true"

/>

<field-descriptor

name="id_servico"

column="id_servico"

jdbc-type="INTEGER"

/>

<reference-descriptor

name="servico"

class-ref="com.maximas.Service"

>

<foreignkey field-ref="id_servico"/>

</reference-descriptor>

<field-descriptor

name="id_cidade"

column="id_cidade"

jdbc-type="INTEGER"

/>

<reference-descriptor

name="cidade"

class-ref="com.maximas.Cidade"

>

<foreignkey field-ref="id_cidade"/>

</reference-descriptor>

<field-descriptor

name="iss"

column="iss"

jdbc-type="DOUBLE"

/>

</class-descriptor>



<!-- Definitions for com.maximas.Cidade -->

<class-descriptor

class="com.maximas.idade"

table="cidades"

>

<field-descriptor

name="id"

column="id"

jdbc-type="INTEGER"

primarykey="true"

autoincrement="true"

/>

<field-descriptor

name="cidade"

column="cidade"

jdbc-type="VARCHAR"

/>

<field-descriptor

name="reter"

column="reter"

jdbc-type="INTEGER"

/>

<field-descriptor

name="mesmo"

column="mesmo"

jdbc-type="INTEGER"

/>

<field-descriptor

name="desconto"

column="desconto"

jdbc-type="DOUBLE"

/>

<field-descriptor

name="id_uf"

column="id_uf"

jdbc-type="INTEGER"

/>

<reference-descriptor

name="uf"

class-ref="com.maximas.UF"

>

<foreignkey field-ref="id_uf"/>

</reference-descriptor>

</class-descriptor>



<!-- Definitions for com.maximas.UF -->

<class-descriptor

class="com.maximas.UF"

table="ufs"

>

<field-descriptor

name="id"

column="id"

jdbc-type="INTEGER"

primarykey="true"

autoincrement="true"

/>

<field-descriptor

name="UF"

column="uf"

jdbc-type="VARCHAR"

/>

<collection-descriptor

name="cidades"

element-class-ref="com.maximas.Cidade"

orderby="cidade"

sort="DESC"

>

<inverse-foreignkey field-ref="id_uf"/>

</collection-descriptor>

</class-descriptor>

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



Reply via email to