본문 바로가기
Oracle

[오라클] Oracle RAC wait event gc current block busy P3 parameter

by 데이터웨이 2022. 11. 7.

대기 이벤트 파라미터

오라클 21c 공식 매뉴얼(Oracle Database Reference)에는 gc current block busy를 포함한 아래 대기 이벤트의 P1, P2, P3 파라미터에 대해 다음과 같이 설명하고 있다.

 

  • gc current block 2-way
  • gc current block 3-way
  • gc current block busy
  • gc current block congested
  • gc current block lost
  • gc current request
Parameter Description
file# See "file#"
block# See "block#"
id# Block class and global access mode held and requested


file#과 block#에 대해서는 자세히 설명하고 있지만, 아쉽게도  id#을 통해 정확한 block class를 구하는 방법은 없다. 다른 블로거의 글(https://argolee.tistory.com/59)에 의하면 P3(id#) 파라미터의 마지막 2 bytes가 바로 block class를 나타낸다고 한다.


아래는 ASH(Active Session History) 정보 중 gc current block busy 대기 이벤트가 발생했을 때, 파라미터 P3를 이용해 block class를 조회하는 샘플이다.

SELECT INST_ID, SESSION_ID, SESSION_SERIAL#, 
       EVENT, P1, P2, P3,
       TO_NUMBER(SUBSTR(TO_CHAR(P3, 'XXXXXXXXXX'),-2, 2), 'XXXX') AS BLOCK_CLASS
FROM   GV$ACTIVE_SESSION_HISTORY
WHERE  SAMPLE_TIME > SYSDATE - 1/24   -- 최근 1시간
AND    EVENT  = 'gc current block busy'
ORDER  BY SAMPLE_ID DESC;

 

Block Class

Class Name
1 data block
2 sort block
3 save undo block
4 segment header
5 save undo header
6 free list
7 extent map
8 1st level bmb
9 2nd level bmb
10 3rd level bmb
11 bitmap block
12 bitmap index block
13 file header block
14 unused
15 system undo header
16 system undo block
17 undo header
18 undo block

Block Class 값이 17 이상인 경우는 undo 블록이다.