개발노트

SQL TRACE 해석 본문

Database/SQLP

SQL TRACE 해석

개발자? 2022. 7. 21. 02:23

SQL 트레이스를 통해 수집한 CALL 통계 정보

 

disk : 디스크에서 물리적으로 읽은 블록 개수

query + current : DB 버퍼 캐시에서 읽은 총 블록 개수

query : consistent 모드로 읽은 블록수(db buffer cache 에서 쿼리 scn 시점보다 작거나 같은 데이터 블록을 찾아 읽음)

current : current 모드로 읽은 블록 수(db buffer cache 에 저장된 가장 최근 업데이트 된 데이터 블록을 읽음)

 

mvcc(multi-version concurrency control) 모델

current 모드 : 디스크에서 db 버퍼 캐시로 적재된 원본 블록을 현재 상태 그대로 읽는 방식

consistent 모드 : 쿼리 SCN 과 블록 SCN 을 비교해서 쿼리가 시작된 시점으로 되돌려서 읽는 방식

쿼리가 시작된 이후 다른 트랜잭션에 의해 변경된 블록을 만나면 원본 블록으로부터 복사본(CR copy) 블록을 만들고, 거기에 undo 데이터를 적용함으로써 쿼리가 '시작된 시점'으로 되돌려서 읽는다.

 

 

 

오라클에서 select 는 consistent 모드로 블록을 읽고

dml 은 consistent 모드로 블록을 읽고 current 모드로 블록을 다시 읽어서 갱신한다.

 

** SCN : System Commit Number, 시스템에서 마지막 커밋이 발생한 시점 정보를 저장함. global 변수값으로 관리함.

반응형

'Database > SQLP' 카테고리의 다른 글

데이터 모델링의 이해  (0) 2022.08.20
조인 메서드 선택 기준  (0) 2022.07.22
Hash Join  (0) 2022.07.22
Sort Merge Join  (0) 2022.07.22
NL JOIN  (0) 2022.07.21
Comments