태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

[오라클질문] latch: cache buffers chains 경합의 이상현상

기술이야기/Ask 엑셈 2011. 1. 12. 10:07
2011-01-04 14:10:31 에 등록된 질문입니다.  초보 님께서 질문해 주셨습니다.
 
또 들렀습니다.


랜덤하게 생성한 1000만건 테이블(big_t1)을 대상으로
아래 plsql 블럭을 두 세션에서 각기 동시 실행했습니다.


DECLARE 
  cnt number;
BEGIN
    FOR i IN 0 .. 1000000
    LOOP
        select seq into cnt from big_t1 where seq = 1 and rownum <= 1;  
    END LOOP;
END;




동시 실행중인 세션에 대해
아래 SQL로 모니터링 했을때.


SELECT
  vs.SID, vs.serial#, vs.status,
  sw.event, sw.p1, sw.p2, sw.p3, sw.wait_time, sw.seconds_in_wait, sw.state
FROM
  v$session vs,
  v$session_wait sw
WHERE 1=1
  AND vs.status = 'ACTIVE'
  AND vs.username = 'SCOTT'
  AND sw.SID = vs.SID


세션 모두 SQL 실행이 진행 중일때는
두 세션에서 모두 latch: cache buffers chains 대기 이벤트가 보였습니다.

이상한 것은 한쪽 세션이 먼저 SQL 실행이 종료가 된 상황에서도
남아 있는 다른 세션에서는 지속해서 latch: cache buffers chains 대기 이벤트가
발생하고 있었고 몇분간 지속됩니다. 여러번 반복해봐도 마찬가지였구요.

그 순간에 v$latchholder를 조회하면 아무 것도 없었구요.

이런 현상은 어떻게 이해해야 할까요?