Ratio 기반 분석방법론과 wait event 기반 분석방법론의 한계점은 문제가 있다고 진단했을때 그 원인을 찾아 실제 문제를 해결하는 데까지 많은 시간이 걸리는 데 있다고 합니다.
v$session
이용하여 실시간 세션에 대한 모니터링을 할 수 있지만 이는 해당 시점에서의 걸리는 쿼리만을 볼 수 있다는 점 때문에 한계가 있습니다.
그래서 나온 기능이 바로 10g
부터 나온 ASH
입니다.
ASH
는 실시간 세션(Actvie Session
)의 활동 정보, SQL 수행 빈도 등의 정보를 1초 간격으로 수집해 SGA -> Shared Pool -> ASH Buffer 영역에 보관해뒀다가 가득 차게 되면 AWR로 내려씁니다.
ASH 정보를 디스크로 내려 쓰는 역할을 담당하는 Background Process는 MMNL
입니다.
자동으로 DB에 대한 통계 및 성능 자료를 수집해 스냅샷으로 만들어 일정 기간동안 보관하고, 이를 활용할 수 있게 해주는 기능입니다.
성능자료의 간단한 예로는 Buffer/CPU/Pin/Latch/Library 등의 히트율, 자원 사용률, Soft/Hard Parse 정도, 가장 느리게 돌았던 쿼리(Slow Query
) 등이 있습니다.
느린 쿼리를 튜닝한다든지, SGA의 값을 AWR이 추천하는 값으로 변경해 효용성을 높인다든지 하는 방법으로 활용할 수 있습니다.
AWR과 관련한 작업을 도와주는 Background Process가 MMON
입니다.
참고