latch: cache buffers chains: 대기: cache buffers chains latch 경합
Oracle의미
buffer cache의 블록을 보호하는 cache buffers chains(CBC) latch에 경합이 있다. 많은 세션이 자주 접근되는 같은 블록(hot block)에 접근하려 할 때 이 대기가 증가한다.
원인
자주 읽히는 hot block. 높은 논리적 읽기를 발생시키는 비효율적인 SQL. nested loop join에서 같은 인덱스 root 블록에 반복 접근. 고르지 않게 분산된 무거운 동시 접근. 작지만 많이 읽히는 테이블.
해결 방법
논리적 읽기를 가장 많이 발생시키는 SQL을 찾고(V$SQL, ASH) 인덱스/접근 계획을 개선해 버퍼 접근을 줄인다. hot block을 식별한다(X$BH / 관련 뷰). 불필요한 nested loop를 hash join으로 전환하는 것을 검토한다. 작고 많이 읽히는 참조 테이블은 접근 패턴을 분산하거나 캐시한다.
같은 데이터베이스의 다른 항목
- ORA-14400inserted partition key does not map to any partition
- ORA-01536space quota exceeded for tablespace
- direct path read대기: buffer cache를 거치지 않고 PGA로 블록을 직접 읽는 세션
- ORA-00955name is already used by an existing object (이름이 기존 개체에서 이미 사용 중)
- ORA-02449unique/primary keys in table referenced by foreign keys (테이블의 고유/기본 키가 외래 키에서 참조됨)
- ORA-01950no privileges on tablespace 'name' (테이블스페이스에 대한 권한 없음)
- ORA-01110data file N: 'path'