SELECT NAME,
GETS,
MISSES,
IMMEDIATE_GETS,
IMMEDIATE_MISSES,
WAIT_TIME
FROM V$LATCH_PARENT
WHERE NAME = 'redo writing'
;
NAME GETS MISSES IMMEDIATE_GETS IMMEDIATE_MISSES WAIT_TIME
-------------- ------ ---------- -------------- ---------------- ----------
redo writing 271153 1738 0 0 968
SELECT A.KSPPINM NAME,
B.KSPPSTVL VALUE,
B.KSPPSTDF DEF_YN,
A.KSPPDESC DESCRIPTION
FROM X$KSPPI A,
X$KSPPSV B
WHERE A.INDX = B.INDX
AND LOWER(A.KSPPINM) IN (TRIM(LOWER('_log_simultaneous_copies'))
)
ORDER BY 1
;
NAME VALUE DEF_YN DESCRIPTION
------------------------ ----- ------ ------------------------------------------------------------------
_log_simultaneous_copies 48 TRUE number of simultaneous copies into redo buffer(# of copy latches)
SELECT NAME,
GETS,
MISSES,
IMMEDIATE_GETS,
IMMEDIATE_MISSES,
WAIT_TIME
FROM V$LATCH_CHILDREN
WHERE NAME = 'redo copy'
;
NAME GETS MISSES IMMEDIATE_GETS IMMEDIATE_MISSES WAIT_TIME
---------- ---------- ---------- -------------- ---------------- ----------
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 0 0 0
redo copy 3250 0 3948 1 0
redo copy 3250 0 7356 3 0
redo copy 3250 0 4616 6 0
redo copy 3250 0 6312 6 0
redo copy 3250 0 5899 6 0
redo copy 3250 0 7723 9 0
redo copy 3250 0 9164 11 0
redo copy 3250 0 20299 19 0
redo copy 3250 0 25901 15 0
redo copy 3250 0 15568 15 0
redo copy 3250 0 20369 21 0
redo copy 3250 0 27109 37 0
redo copy 3250 0 24926 27 0
redo copy 3250 0 48979 35 0
redo copy 3250 0 27933 36 0
redo copy 3250 0 24279 35 0
redo copy 3250 0 17672 38 0
redo copy 3250 0 58922 69 0
redo copy 3250 0 20380 47 0
redo copy 3250 0 74721 68 0
redo copy 3250 0 84075 69 0
redo copy 3250 0 52340 74 0
redo copy 3250 0 56953 92 0
redo copy 3250 0 57725 107 0
redo copy 3250 0 914649 491 0
redo copy 3250 0 122597 138 0
redo copy 3250 0 787318 503 0
redo copy 3250 0 2640789 286 0
8i | ☞ 체인지 벡터를 리두 버퍼에 복사하기 위해 리두 버퍼에 공간을 확보하는 과정에서 'redo allocation' 래치를 획득함. ☞ 8i까지는 전체 인스턴스에서 하나의 'redo allocation' 래치만이 사용가능하며, 이로 인해 경합에 의한 성능저하 빈번함. |
9i | ☞ 9i부터는 전체 리두 버퍼를 복수개의 'redo strands'라는 공간으로 분할해서 사용할 수 있으며, 하나의 'redo strands'가 하나의 'redo strands'를 관리함. ☞ 복수개의 'redo strands' 래치를 사용하기 때문에 경합을 다소 줄일 수 있으며, 'redo strands' 개수는 'LOG_PARALLELISM' 파라미터로 결정되고, 기본값은 1 ☞ 10g에서는 이 파라미터를 '_LOG_PARALLELISM' 히든 파라미터로 변경하였으며, 오라클에서는 이 파라미터값을 (CPU 개수 / 8) 만큼 변경시킬 것을 권고함 |
10g | ☞ 10g부터는 'Dynamic Paralleism'이라는 새로운 기능을 도입하였으며, '_LOG_PARALLELISM' 값을 TRUE로 할 경우 활성화되고 기존값은 TRUE임. ☞ 이 기능은 'redo strands' 개수를 동적으로 관리하며, 생성 가능한 최대 개수는 10g R2부터 '18 + _LOG_PARALLELISM_MAX'이고 이 값 만큼 'redo allocation' 래치 생성. ☞ '_LOG_PARALLELISM_MAX' 기본값은 2이며, CPU 개수는 초과 불가함. |
SELECT *
FROM V$SGASTAT
WHERE NAME LIKE '%strand%'
;
POOL NAME BYTES
------------ ------------------ ----------
shared pool private strands 145305600