1 <속성 이름="hibernateProperties">
2 <소품>
3 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
4 <prop key="hibernate.show_sql">false</prop>
5 <!-- JVM이 시작될 때 자동으로 데이터베이스 테이블을 생성/업데이트합니다.
6 <prop key="hibernate.hbm2ddl.auto">update<//prop> -->
7 <!-- PostgreSQL에서 더 나은 오류 메시지를 얻으려면 일괄 처리를 끄세요.
8 <prop key="hibernate.jdbc.batch_size">100</prop> -->
9 <prop key="hibernate.jdbc.batch_size">50</prop>
10 </소품>
11 </속성>
가져오기 크기를 크게 설정할수록 데이터베이스를 읽는 횟수는 줄어들고 속도는 빨라집니다. 가져오기 크기를 작게 설정할수록 데이터베이스를 읽는 횟수는 늘어나고 속도는 느려집니다.
2. 매우 큰 시스템인 경우 htm 파일을 생성하는 것이 좋습니다. 페이지 프로모션 속도를 높입니다.
3. 최대 절전 모드에 모든 책임을 두지 말고, 코드를 리팩터링하고, 데이터베이스 작업을 줄이고, 데이터베이스 쿼리 중 작업에서 사용을 피하고, 재귀 쿼리 작업을 피하십시오. 코드 품질과 시스템 설계의 합리성이 결정됩니다. 시스템. 성능 수준.
4. 많은 양의 데이터를 질의할 경우 list()나 iterator()를 주의해서 사용하여 질의 결과를 반환하십시오.
(1) List()를 사용하여 결과를 반환할 때 Hibernate는 모든 쿼리 결과를 영속 객체로 초기화합니다. 결과 집합이 클 경우 처리 시간이 많이 걸립니다.
(2) 결과를 반환하기 위해 iterator()를 사용하는 경우, Hibernate는 객체를 반환하기 위해 iterator.next()가 호출될 때마다 해당 객체를 초기화하는 쿼리를 호출하고, 대량의 데이터에 대해 각 쿼리는 더 많은 시간을 보내세요. 결과 집합이 크지만 동일한 데이터의 양이 많거나 결과 집합을 모두 사용하지 않을 경우 iterator()를 사용하는 것이 유리합니다.
5. 일대다 및 다대일 관계에서 지연 로드 메커니즘을 사용하면 사용 시 많은 개체가 초기화됩니다. 이렇게 하면 메모리 공간을 절약하고 데이터베이스의 로드를 줄일 수 있습니다. PO에서 사용하지 않을 때 상호 데이터베이스 상호 작용이 줄어들고 처리 시간이 단축될 수 있습니다.
6. 연관된 PO(영구 객체)가 있는 경우, default-cascade="all" 또는 "save-update"를 사용하는 경우, 새로운 PO 추가 시 PO에 컬렉션 할당 작업에 주의하시기 바랍니다. 업데이트 작업을 여러 번 수행할 수 있기 때문입니다.
7. 대량의 데이터를 추가, 수정, 삭제하거나 대량의 데이터를 쿼리하는 등의 작업에서는 데이터베이스와의 상호 작용 횟수가 처리 시간을 결정하는 가장 중요한 요소이므로 상호 작용 횟수를 줄이는 것이 가장 좋습니다. 효율성을 높이기 위해서는 개발 과정에서 show_sql을 true로 설정하고, Hibernate의 처리 과정을 깊이 이해하고, 효율성을 높이기 위한 다양한 방법을 시도해보세요. 가능한 한 각 페이지를 표시하고 데이터베이스 작업을 100-150개 항목 미만으로 줄이십시오. 적을수록 좋습니다.
위의 내용은 struts+hibernate+spring을 사용한 프로젝트 개발 중 최대 절전 모드 성능 최적화에 대한 몇 가지 생각입니다.