2013-03-19 2 views
1

많은 수의 레코드가있는 최대 절전 모드 업데이트 (Session.update()) 부분을 사용하는 동안 문제가 발생했습니다. 매우 느리게 진행되고 있습니다. 그러나 insert (Session.insert()) 부분에는 아무런 문제가 없습니다. lakh의 records에 대한 업데이트를하는 동안 업데이트 부분을 수행 할 수있는 방법이 있습니까? SQL Server를 조정하여 업데이트가 더 빨라질 수있는 방법은 없습니다. 모든 기본 필드에 별도의 인덱스를 추가하는 동안 삭제 부분은 시간이 걸립니다. 거기에 삽입, 삭제 및 업데이 트를 잘 수행 할 수 있도록 SQL 서버를 조정하는 더 좋은 방법입니다.엄청난 수의 레코드를 사용하면서 Hibernate를 빠르게 업데이트하는 방법

감사합니다. Saif.

+2

일부 코드를 게시 할 수 있습니까? –

답변

2

각 레코드에 대해 개별 업데이트 대신 일괄 업데이트를 수행합니다. 이렇게하면 모든 레코드에 대해 데이터베이스를 한 번만 치게됩니다.

1

저장 만하면 데이터가 데이터베이스에 저장되는 반면 레코드를 업데이트 할 때 먼저 검색 작업을 수행 한 다음 레코드를 업데이트해야합니다. 레코드의 거대한 숫자를 처리하는 최대 절전 모드의 일괄 처리 기록을 업데이 트하는 데 사용할 수 있습니다. 다음 튜토리얼에서 최대 절전 모드에서 일괄 처리를위한 좋은 링크가 포인트입니다 :

http://www.tutorialspoint.com/hibernate/hibernate_batch_processing.htm

0

다른이에 대한 해결책하지만 내가 아는 한 가지 방법이있을 수 있습니다 : 저장하거나 session (e.g. session.save(), session.update(), session.saveOrUpdate() etc.)를 통해 인스턴스를 업데이트 할 때마다

또한 인스턴스 FK 연관을 업데이트합니다.

POJO에 여러 FK 연결이있는 경우 해당 테이블에 대한 쿼리도 실행됩니다.

이런 식으로 인스턴스를 업데이트하는 대신 인스턴스를 저장하거나 업데이트하기 위해 HQL (요구 사항에 적용되는 경우)을 사용하는 것이 좋습니다.

관련 문제