2015-01-27 5 views
0

최대 절전 모드 4.2.x에서 작업 중이며 HiLo 시퀀스 생성을 사용하지 않으려는 경우 - 매번 DB (oracle)로 이동하십시오.최대 절전 모드 HiLo 시퀀스 생성 사용 안 함

<property name="hibernate.id.new_generator_mappings" value="true"/> 

을 그리고 내 기업은 다음과 같습니다 : 나는 persistance.xml이 행을 추가

@Entity 
@Table(name = "MY_TABLE") 
@SequenceGenerator(name = "generator", sequenceName = "MY_SEQ", initialValue = 1, allocationSize = 1) 
public class MyEntity { 

    private long id; 

    @Id 
    @Column(name = "id") 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generator") 
    public Long getId() 
    { 
     return id; 
    } 
} 

을 난 아직도 힐로 동작 받고 몇 가지 이유 - IDS는 서로 멀리 떨어져 만들었습니다.

몇 가지 질문 (예 : herehere)을 찾았지만 도움이되지 않았습니다. 더 많은 경우, Optimizer을 사용할 구성을 찾을 수 없습니다.

+0

PL/SQL Developer와 같은 도구를 사용하여 시퀀스 'MY_SEQ'을 검사하여 데이터베이스에 설정 방법을 결정하는 것이 좋습니다. –

답변

0

최대 절전 모드에 익숙하지 않아서 오라클 데이터베이스 시퀀스를 소스로 사용하고있는 것 같습니다. 오라클 시퀀스의 특징 중 하나는 시퀀스 캐시입니다. 캐시 크기가 설정되면 순서의 정의를 체크인하십시오 (기본값 = 20). 데이터베이스를 다시 시작한 후에도 캐시가 제거되므로 연속 번호가 없어지는 것을 알고 있습니다. 다음 명령으로 시퀀스를 수정하십시오. 변경 시퀀스 MY_SEQ nocache;

시퀀스가 ​​캐싱되지 않으면 OLAP 성능이 저하 될 수 있습니다.

+0

사실, 특히 클러스터가있는 경우. 각 노드마다 고유 한 캐시가 있으므로 범위가 다르므로 각 클러스터에서 시퀀스를 가져올 수 있으므로 HiLo와 비슷한 동작이 발생합니다. – TheTufik