본문 바로가기

반응형

sql_tuning

(33)
Section4. Buffer Cache 내부의 Block 유형 및 Buffer Pools 유형 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] Buffer Cache 내 블록 유형 (Free/Dirty/Pinned block) Free buffer: 아직 데이터가 할당되지 않은 buffer block(unused) 이거나, pinned buffer 였다가 서버 프로세스의 사용이 종료되고 update 되지 않은 buffer(Clean). 디스크에서 읽은 신규 데이터를 할당 가능함. Pinned buffer: 데이터가 할당 된 후 수정되지 않고 사용자 세션에 의해 사용되고 있는 buffer block 서버 프로세스 사용 종료 시 clean. Dirty buffer: 데이터가 이미 할당된 이후에 다시 데이터가 수정되었으나, 아직 disk 상의 data file에 write 되지 못한 buffe..
Section4. Buffer_Cache Hit_Ratio의 이해 및 문제점 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] Buffer Cache Hit Ratio 시스템이 얼마나 Disk I/O를 줄이고 Buffer Cache를 잘 활용하고 있는지를 나타내는 지표 Hit Ratio = (1 - (Physical reads / Logical Reads ) ) * 100 Logical Reads: Buffer Cache Block 액세스 수 Pyhsical Reads: Disk Block 액세스 수 Buffer Cache Hit Ratio 통계 함정 (1) Buffer Cache Hit Ratio 99% 이면 전반적인 SQL 수행속도가 양호한 것일까? 100,000의 1% VS 1,000,000,000의 1% ->십만의 1%는 천, 그러나 십억의 1%는 천만. 이 천만이..
Section4. Buffer Cache 개념 및 Buffer Cache Access 메커니즘의 이해 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] Buffer Cache 개요 Storage I/O Access를 최소화 하기 위해서 한 번 Access 한 Block은 RAM 영역에 저장하기 위한 공유 메모리 영역 즉 Storage 까지 안가고 RAM에서 해결하기 위해 블락을 버퍼캐시에 올려두는 것 임. (in memory 방식) 특히 Random I/O 성능 영향을 최소화하는 중요 역할 (Storage I/O는 랜덤I/O에 취약함) 서버 프로세스가 데이터 Access 시 최초에는 Storage에 Access 해당 Block 이 Buffer Cache에 로드 되면 이제는 해당 Blovk Access 시 Buffer Cache에서 Access 하므로 Storage I/O Access 량을 줄임 B..
Section4. 오라클 메모리 구조 및 SGA 개요 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] Oracle Memory Structure Shared Memory 매우 많은 서버 프로세스가 동시에 메모리 자원을 공유 (SGA: Shared Global Area) Non Shared Memory 각 서버 프로세스가 개별 메모리 할당 (PGA: Program Global Area) 오라클의 메모리 활용 전략 Disk I/O를 최대한으로 줄일 수 있는가? 동시에 많은 프로세스에서 최대한 효율적으로 자원할당을 할 것인가? 시스템 안정성을 어떻게 유지할 것 인가? Oracle SGA 의 개요 Database Buffer Cache: Disk I/O의 영향도를 줄이기 위해 데이터 파일의 데이터 블록을 메모리로 Copy Shared Pool: 사용자들간..
Section3. B-Tree 인덱스의 이해 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] B-Tree 인덱스 컬럼값과 해당 컬럼값의 테이블 Row가 위치해 있는 Rowid 값으로 구성 되어 있음. 인덱스에서 해당 컬럼값을 조사한 뒤 Rowid를 이용하여 Table 에 Access 함. B-Tree 인덱스를 통한 테이블 Access B-Tree 인덱스 세그먼트 구조
Section3. 오라클 Wait Event 개요 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] Oracle Wait Event 성능 및 운영 관리를 위해 알아야 할 가장 중요한 요소 중 하나 오라클은 서버 프로세스 또는 백그라운드 프로세스가 DB의 CPU, Memory, Database File, I/O 등의 모든 자원을 엑세스 하고 이용하는 세부 단계별로 상세한 Wait Event(대기 이벤트) 를 발생 오라클의 모든 성능 요소 및 자원 사용현황은 Wait Event 의 발생 정도에 따라 모니터링 가능함 DB 내 문제점 진단과 분석을 위한 Wait Event 인체 내의 각 기관별로 진단을 위한 다양한 증상 및 이에 대한 해결책을 발전시켜 왔듯이, 오라클은 DB 내의 거의 모든 세부 프로세스 절차에서 Wait Event를 의무적으로 발생시키..
Section3. SID와 SERVICE_NAME 개념 그리고 DB_NAME과 GLOBAL_DBNAME 개념 설명 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] SID, SERVICE_NAME, DB_NAME, GLOBAL_DBNAME 구분 SID는 Instance의 고유명을 나타냄 예를 들면 RAC에서 여러 인스턴스를 구분하기 위해 사용 하는 것이 SID. SERVICE_NAMES 는 개념적으로 DB에서 서비스 되는 Database 서비스명을 의미, 일반적으로 1개 또는 여러 개의 Instance가 결합되어 서비스 가능. 예를 들면 그림에서 사용자가 ORCL Service 접속 시 Service_NAME: ORCL 임을 확인 후 리스너가 ORCL_01 또는 ORCL_02 인스턴스에 보내줌. 예전에는 SID로 서비스를 찾아갔는데, 문제는 하나의 인스턴스가 죽으면 다른 인스턴스 SID를 모를 경우 서비스를 ..
Section3. Instance와 Database 개념 구분 및 RAC 개념 설명 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] Instance와 Database의 구분 및 RAC 개념 Instance: 메모리를 뜻함. Database: File들로 이루어져 있음. RAC(Real Application Cluster): 1개 DB가 2개 이상의 Instance를 가지는 구조. 서비스가 멈추지 않도록 고가용성을 위한 방법.

반응형