1 <nome da propriedade="hibernateProperties">
2 <adereços>
3 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
4 <prop key="hibernate.show_sql">false</prop>
5 <!-- Cria/atualiza as tabelas do banco de dados automaticamente quando a JVM é inicializada
6 <prop key="hibernate.hbm2ddl.auto">update</prop> -->
7 <!-- Desative o lote para obter melhores mensagens de erro no PostgreSQL
8 <prop key="hibernate.jdbc.batch_size">100</prop> -->
9 <prop key="hibernate.jdbc.batch_size">50</prop>
10 </adereços>
11 </propriedade>
Quanto maior o Fetch Size for definido, menos vezes o banco de dados será lido e mais rápida será a velocidade; quanto menor for o Fetch Size, mais vezes o banco de dados será lido e mais lenta será a velocidade;
2. Se for um sistema muito grande, recomenda-se gerar arquivos htm. Acelere a promoção da página.
3. Não coloque toda a responsabilidade na hibernação, refatore o código, reduza as operações no banco de dados, tente evitar o uso em operações durante consultas ao banco de dados e evite operações de consulta recursivas. A qualidade do código e a racionalidade do design do sistema determinam a qualidade do código e a racionalidade do design do sistema. nível de desempenho.
4. Ao consultar grandes quantidades de dados, use list() ou iterator() com cuidado para retornar os resultados da consulta.
(1). Ao usar List() para retornar resultados, o Hibernate inicializará todos os resultados da consulta em objetos persistentes. Quando o conjunto de resultados for grande, levará muito tempo de processamento.
(2). Ao usar iterator() para retornar resultados, o Hibernate chamará a consulta para inicializar o objeto correspondente cada vez que iterator.next() for chamado para retornar o objeto e usar o objeto. ser chamado. Passe mais tempo. É vantajoso usar iterator() quando o conjunto de resultados é grande, mas contém uma grande quantidade dos mesmos dados, ou quando nem todo o conjunto de resultados será usado.
5. Em relacionamentos um-para-muitos e muitos-para-um, o uso do mecanismo de carregamento atrasado fará com que muitos objetos sejam inicializados quando usados. Isso pode economizar espaço de memória e reduzir a carga no banco de dados e na coleção. em PO Quando não estiver em uso, as interações mútuas com o banco de dados podem ser reduzidas e o tempo de processamento reduzido.
6. Quando houver um PO associado (objeto persistente), se for utilizado default-cascade="all" ou "save-update", ao adicionar um novo PO, preste atenção à operação de atribuição da coleção no PO, porque pode causar várias operações de atualização.
7. Para operações como adicionar, modificar e excluir grandes quantidades de dados ou consultar grandes quantidades de dados, o número de interações com o banco de dados é o fator mais importante que determina o tempo de processamento. Reduzir o número de interações é a melhor maneira. para melhorar a eficiência, portanto, durante o processo de desenvolvimento, defina show_sql como true, tenha um conhecimento profundo do processo de processamento do Hibernate e tente métodos diferentes para melhorar a eficiência. Tente exibir cada página o máximo possível e reduza as operações no banco de dados para menos de 100 a 150 itens. Quanto menos, melhor.
Acima estão algumas reflexões sobre a otimização do desempenho do hibernate durante o desenvolvimento do projeto com struts+hibernate+spring.