Sistema muito lendo com hibernate 3

Olá,

Gostaria de saber como fazer para melhorar a performance de um sistma com hibernate 3.1. Porque meu sistema está muito lento para executar os comandos de buscar, inserção e deleção no banco.

Não tenho experiência com hibernate, então estou utilizando lazy=“false” no mapeamentos em que preciso acessar os objetos relacionado ao objeto que estou buscando no banco. Isso é correto? Caso não, como eu faço para ter acesso aos objetos relacionados ao obj buscado?

segue meu um exemplo do mapeamento:

hibernate.cfg.xml


<hibernate-configuration>
    <session-factory>
	    <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.password">pos</property>
        <property name="hibernate.connection.url">jdbc:postgresql://localhost/db_editor</property>
        <property name="hibernate.connection.username">postgres</property>
        <property name="hibernate.default_schema">public</property>
        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <property name="show_sql">true</property>

        
    </session-factory>
</hibernate-configuration>

exemplo de um dos obj que preciso acessar outros obj relacionados:


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 12/09/2006 16:26:22 by Hibernate Tools 3.2.0.beta6a -->
<hibernate-mapping>
	<class name="br.com.pos.Historico" table="historico">
		<composite-id name="identificador" class="br.com.pos.HistoricoId">
			<key-property name="idHistorico" type="java.lang.Integer" column="id_historico" />
			<key-many-to-one name="requisito" class="br.com.pos.Requisito" column="id_requisito" />
		</composite-id>
		
		<many-to-one name="prioridade" class="br.com.pos.Prioridade"
			fetch="select" lazy="false">
			<column name="id_prioridade" />
		</many-to-one>
		<many-to-one name="status" class="br.com.pos.Status" fetch="select" lazy="false">
			<column name="id_status" />
		</many-to-one>

		<property name="parecerValidacao" type="string">
			<column name="parecervalidacao" length="200" />
		</property>
		<property name="dataExclusao" type="date">
			<column name="dataexclusao" length="4" />
		</property>
		<property name="descricao" type="string">
			<column name="descricao" length="200" not-null="true" />
		</property>
		<property name="comentario" type="string">
			<column name="comentario" length="200" not-null="true" />
		</property>
				<property name="revisao" type="java.lang.Integer">
			<column name="revisao" length="5" not-null="true" />
		</property>
		<property name="dataRevisao" type="date">
			<column name="datarevisao" length="4" not-null="true" />
		</property>
		<set name="meusHistoricoAutores" inverse="true" lazy="false">
			<key>
				<column name="id_historico" not-null="true" />
				<column name="id_requisito" not-null="true" />
			</key>
			<one-to-many class="br.com.pos.HistoricoAutor" />
		</set>
<!-- 
 		<array name="historicoAutores" inverse="true">
			<key>
				<column name="id_historico" not-null="true" />
				<column name="id_requisito" not-null="true" />
			</key>
			<list-index column="id_historico,id_autor,id_requisito" />
			<one-to-many class="br.com.pos.HistoricoAutor" />
		</array>
 -->
	</class>
</hibernate-mapping>

Uma coisa que eu sei que você pode fazer para melhorar o desempenho, pois passei por isso, é não ficar instanciando a SessionFactory e até mesmo sessions o tempo todo. Você pode manter uma sessão aberta até a aplicação ser finalizada, depende do seu problema. Mas o lance da SessionFactory é fato, é custoso demais, então cria apenas um por cada execução.

Olá

Além da dica anterior, verifique se o problema é realmente no hibernate com algumas das sugestões que dei em http://www.guj.com.br/posts/list/46836.java#245030

[]s
Luca

Obrigado pessoal pelas respostas, vou testar as sugestões de vocês e dou um retorno assim que terminar.