no image
[Oracle] Wait Event - Log File Sync, Log File Parallel Write 란?
개념- Server Process 가 DML 작업을 하면 Redo Log Buffer에 쌓게 된다 - Commit을 수행하면 Redo Log Buffer에 있던 해당 DML은 Redo Log File에 기록이 된다  Log File Sync란 - Server Process 가 Commit을 수행하여 Redo Log Buffer에 있는 내용을 Redo Log File로 Write해달라고  LGWR한테 요청할 때 발생하는 Wait 이다-  빈번한 Commit이 발생하거나 , Redo Log File의 IO성능이 좋지 못할 경우 발생한다 (RAID-5일때 많이 발생한) Log File Parallel Write란- LGWR이 OS한테 Write를 요청할 때 발생한다 (OS쪽에서 ACK가 오면 Wait는 풀리게..
2024.05.15
no image
[Oracle] Wait event - Free Buffer Waits , db file parallel write, write complete waits
Free Buffer Waits - buffer cache의 free buffer가 나올때까지 wait하는 거다 - server process가 storage 상에 데이터를 buffer에 올려야 하는데 free buffer가 없을 경우에 발생한다 - dirty buffer를 DBWR을 사용해서 storage로 내려 재활용이 되게 해야한다  실운영에서 발생 원인 - 대량 범위의 random io Access를 하는 SQL 이 자주 호출될 경우, buffer cache를 많이 잡고 있기 때문에 다른 작업들이 wait하게 된다  - free buffer를 잡지 못한 server process는 DBWR한테 요청을 하고 대기를 하는게 "free buffer waits".   - 요청 내용은 : to.DBWR  ..
2024.05.15
no image
[Oracle] Wait Event - Buffer Cache
Oralce에서 Buffer Cache와 관련된 Wait Event를 알아본다  Oracle 주요 구성 요소별 I/O 관련 Wait Event주요 I/O 대상 구분Wait EventWait ClassDatafile I/Odb file sequential readUser I/Odb file scattered readUser I/Odirect path reads and writesUser I/OTemporaryDatafile I/Odirect path reads tempUser I/Odirect path write tempUser I/OBuffer Cache(Latch 포함)latch: cache buffer chainsConcurrencylatch: cache buffer LRU chainsConcurre..
2024.05.15
[Oracle] Wait Event - Latch, Enqueu, Mutex
Oracle 에서 Latch 와 Lock(Enququ)에 대해 알아봅니다  Lock(Enqueue) 란?Job들을 줄세운 뒤에 순서대로 처리한다 특징1) 요청 순서를 보장한다특징2) 줄을 관리하는 별도의 관리job이 필요하다  특징3) 단일 처리 시간이 상대적으로 오래걸린다 (관리job은 줄이 비워진걸 확인하고 다음 job을 실행하게 해줘야함) Latch란 ? Job들이 끊임없이 자원을 차지하려고 시도함 (무질서한 할인판매대 같음 - 내가 늦게왔어도 먼저 잡으면 장떙)경량화된 lock 이라 한다 특징1)  요청 순서를 보장하지 않느다 특징2) 줄을 관리하는 별도의 관리job이 필요없다  특징3) 단일 처리 시간이 매우 빠르다  (중간에 관리 job의 업무가 빠짐)- Oracle에서 접속자들은 동시에 SG..
2024.05.12
[Oracle] Wait event - Direct Path Read & Direct Path Write
Oracle IO 유형1. Conventional IO- server process 가 Data Access 할때 'Buffer Cache'로 Access  - sever process가 Data 찾을려고  Buffer Cache LRU 를 먼저 본다  - 없으면 - Disk 에서 해당 Block을 찾아서 Buffer Cache에 올린다  - server process는 Buffer Cache에 올라간 Data를 읽는다- 단점 - 대량의 Data를 읽을 경우 : 기존의 buffer cache에 pin된 Data를 out 시켜야함 + latch도 있고      2. Direct IO- buffer Cache 로 데이터를 올리지 않고 , server process가 direct로 Disk 에서 읽음  Dir..
2024.04.28
no image
[Oracle] Wait event - DB File Sequential Read & DB File Scattered Read
DB File Sequential Read  & DB File Scattered Read  DB File Scattered Read 는 DB upgrade 되면서 자주나오는 wait event는 아니다 Disk에서 cache로 데이터 가져올때 발생한다 DB File Sequential Read 자주 보이는 wait eventRandom IO 할때 발생 - 정확하게는 Single Block Storage IO를 수행할 때 발생 - Random IO는 대부분 Single Block   - Index 경유해서 table Random Access 할때 발생 (table 데이터를 순차적으로 접근하는게 아닌 random하게 접근함) 대량 발생 시 OLTP 성능 저하시키는 주 원인이 된다  - OLTP는 대부분 In..
2024.04.28
[Oracle] Wait Event
세부적인 process 처리 할 때마다 wait event가 발생한다 예를 들면 , server process가 parsing을 할 때 Library cache object를 만드는 등의 메모리 할당 같은 모든 개별적인 작업에 wait event가 발생한다. latch 할당, LRU 확인 등을 할때도 wait event 발생한다 Idle 에 따른 Wait Event 유형 Idle Wait Event Timer, Message Sending, Client data waiting등 리소스를 사용하지 않거나 클라이언트로 부터 답변 을 기다려야하는 등의Wait Event (queue에 쌓고 network응답 또는 client 응답을 기다리는 경우 ) DB 성능에 큰 영향을 미치지않는Wait Event ( 그렇다..
2024.04.19
no image
[Oracle] Data Dictionary
Oracle 구성하는 요소의 세부적인 정보를 제공한다 data dictionary로 성능을 분석할 수 있다 성능 모델의 주요 구성 요소 STAT과 WAIT은 겹치지 않으며, SQL, SESSION은 여러 요소에 영행을 줄 수 있다 1. STAT (통계지표) - buffer hit ratio , sort ratio, pga hit ratio , hard parsing, soft parsing 2. WAIT - SQL 처리 시 oracle의 여러 component 에 Access 하게 된다. Access 할때 발생하는 Event는 병목이 생길 경우 wait한다. 3. SQL - IO, wait등을 얼마나 발생시키는지 확인 4. SESSION 5. METRICS (추가적으로 만듬) 6. TIME MODEL (..
2024.04.16
no image
[Oracle]PGA- AMM (Automatic Memory Management)
10g에서 소개된 ASMM (Automatic Shared Memory Management)는 SGA내의 Component들을 자동으로 동적 최적 크기조정을 가능하게 하였고, 11g부터 소개된 AMM은 SGA뿐만 아니라 PGA 크기도 자동으로 동적 최적크기조정을 가능하게 함 SGA_MAX_SIZE까지 SGA_TARGET 이 늘어남? PGA_AGGREGATE_TARGET 도 limit (12c 기능 )까지 늘어날 수 있다 AMM은 자동으로 SGA에서 놀고 있으면 PGA를 늘리고~ 해준다 MEMORY_TARGET = SGA_TARGET + PGA_AGGREGATE_TARGET 으로 설정값으로 가이드로 하고 MAX 까지 늘어날 수 있게 한다 공간이 더 필요하다면 여유공간(MAX - TARGET ) 부터 사용한..
2024.04.15