programing

시퀀스 캐시 및 성능

mailnote 2023. 10. 23. 22:01
반응형

시퀀스 캐시 및 성능

성능 최적화 시 시퀀스 캐시를 더 높은 값으로 설정하라는 DBA 팀의 조언을 확인할 수 있었습니다.값을 20에서 1000 또는 5000으로 늘립니다.오라클 문서에 따르면 캐시 값은

Specify how many values of the sequence the database preallocates and keeps in memory for faster access.

AWR 보고서 어딘가에서 볼 수 있겠군요

select SEQ_MY_SEQU_EMP_ID.nextval from dual

캐시 값을 늘리면 성능이 향상되는지 확인할 수 있습니까?SEQ_MY_SEQU_EMP_ID.

제 질문은 다음과 같습니다.

시퀀스 캐시 성능이 성능에 중요한 역할을 합니까?그렇다면 시퀀스에 필요한 충분한 캐시 값이 무엇인지 알 수 있는 방법.

오라클 캐시에서 시퀀스 값이 소진되기 전에 가져올 수 있습니다.모든 값이 사용되면 Oracle은 새 값 배치를 할당하고 Oracle 데이터 사전을 업데이트합니다.100000개의 레코드를 삽입하고 캐시 크기를 20으로 설정해야 하는 경우 Oracle은 데이터 사전을 5000번 업데이트하지만 5000을 캐시 크기로 설정하면 20번만 업데이트합니다.

더 많은 정보가 도움이 될 것입니다: http://support.esri.com/en/knowledgebase/techarticles/detail/20498

CASH와 NOCACH를 모두 생략하면 데이터베이스는 기본적으로 20개의 시퀀스 번호를 캐시합니다.Oracle Real Application Cluster 환경에서 시퀀스를 사용하는 경우 CASH 설정을 사용하여 성능을 향상시키는 것이 좋습니다.

CASH 옵션과 NOORDER 옵션을 함께 사용하면 시퀀스에 가장 적합한 성능을 얻을 수 있습니다.CASH 옵션은 ORDER 옵션 없이 사용되며, 각 인스턴스는 별도의 범위의 숫자를 캐시하고 시퀀스 번호는 서로 다른 인스턴스에 의해 순서에 맞지 않게 할당될 수 있습니다.따라서 CASH가 사전에 적게 쓰는 값은 더 많지만 시퀀스 번호는 더 많이 손실될 수 있습니다.하지만, 롤백, 셧다운은 분명히 숫자를 잃을 것이기 때문에 숫자를 잃는 것에 대해 걱정하는 것은 의미가 없습니다.

CASH 옵션을 사용하면 각 인스턴스가 고유한 숫자 범위를 캐시할 수 있으므로 Oracle Data Dictionary에 I/O를 줄일 수 있으며 NOORDER 옵션을 사용하면 인터커넥트를 통한 메시지 트래픽이 제거되어 데이터베이스의 모든 인스턴스에 걸쳐 순차적으로 번호를 할당할 수 있습니다.캐시 속도가 느립니다...

글을

ORACLE 캐시의 시퀀스에는 기본적으로 20개의 값이 포함됩니다.시퀀스 정의에서 주어진 캐시 절로 재정의할 수 있습니다.큰 정수를 생성하고자 할 때 캐시 계산을 순서대로 제공하면 정상보다 적은 시간이 소요됩니다. 그렇지 않으면 순서 정의에서 캐시 절을 선언하여 성능이 크게 향상되지 않습니다.

이와 관련하여 몇 가지 조사를 실시하고 관련된 정보를 찾았습니다.

  • 사용량이 많지만 기본 캐시 크기가 20으로 정의된 시퀀스를 데이터베이스에서 확인해야 합니다. 시퀀스의 캐시 크기를 변경하면 성능 이점이 눈에 띕니다.
  • 시퀀스의 캐시 크기를 늘린다고 해서 공간이 낭비되는 것은 아니며, 캐시는 마지막으로 사용된 숫자와 하이 워터 마크 두 가지만으로 정의됩니다. 하이 워터 마크는 도달할 때마다 훨씬 더 큰 값으로 점프됩니다.
  • 캐시된 시퀀스는 캐시되지 않은 시퀀스와 정확히 동일한 값을 반환합니다.그러나 캐시된 다른 정보와 마찬가지로 시퀀스 캐시는 공유 풀에 유지됩니다.즉, 자주 액세스하지 않으면 절차와 동일한 방식으로 공유 풀을 사용할 수 없습니다.인스턴스가 종료되면 캐시도 손실됩니다.

Clustered Oracle 설치 환경에서 작업할 경우 시퀀스 캐시가 작은 Oracle 데이터 사전을 업데이트하는 데 더 많은 시간을 할애할 뿐만 아니라 다른 부정적인 영향을 미칠 수 있습니다.

Murali Vallath의 Oracle 10g RAC Grid, Services and Clustering 1st Edition에는 다음과 같이 명시되어 있습니다.

  • 오라클 클러스터(RAC)
  • 증가하는 시퀀스 값으로 채워진 열의 partition가 없는 인덱스
  • 동시 다중 인스턴스 삽입

맨 오른쪽 인덱스 블록에서 높은 경합이 발생할 수 있으며 클러스터 대기 시간이 많이 발생할 수 있습니다(총 삽입 시간의 최대 90%).관련 시퀀스 캐시의 크기를 늘리면 클러스터 대기가 인덱스에 미치는 영향을 줄일 수 있습니다.

an excerpt from the mentioned book

언급URL : https://stackoverflow.com/questions/24298868/sequence-cache-and-performance

반응형