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
no image
[Oracle] PGA- Cursor란?
Cursor란? 서버 프로세스내의 Private SQL area를 가리키는 일종의 Handle(Pointer)를 지칭. Cursor는 클라이언트 프로세스가 서버의 데이터를 가져오기 위해 가지는 일종의 Pointer임 1. Client에서 SQL 요청 2. DB storage 또는 buffer cache 에 있는 데이터를 Private SQL Area에 저장후에 Client에게 반환 3. Client 는 요청한 SQL 데이터가 완전히 반환 될때까지 fetch 요청 Client 에선 pl/sql은 cursor 라고 되어있고 , JDBC에선 ResultSet으로 데이터를 받는다 Client에선 Cursor point( =server process의 Memory Pointer)만 움직여서 요청하면 된다 PL/S..
2024.04.15
no image
[Oracle] PGA란?
SGA : 각 server process가 공유하는 메모리공간PGA : 각 server process별로 개별적으로 할당되는 메모리공간 사용 목적다른 server process 와 공유할 내용이 아니며 현재 세션에서만 쓰고 끝낼경우 SQL Work Area정렬, hashing 시 Disk IO를 줄이기 위해 사용 - [Sort Area] SQL이 sort by , group by 처럼 정렬이 필요할 경우 - [Hash Area] hash join Private SQL Area- Cursor & Data Fetch- SQL 바인드 변수 등  PGA를 활용한 SQL 정렬 원리  서론 : 정렬 hashing 할 데이터양이 매우 클 경우 , PGA(memory)를 많이 쓰면서, 다른 프로세스가 사용하지 못할 수..
2024.04.15
no image
[Oracle] Wait Event란? (wait event class 정리 )
오라클의 프로세스가 자원을 접근/사용할때 세부단계별로 상세한 Wait Event 가 발생한다 (자원- cpu,mem, io..) wait event 발생할 떄 마다 기록을 하면 느리지 않나? 싶지만 oracle은 wait event 부분을 굉장히 발전 시켰기에 걱정없다 성능 요소 와 자원 사용현황은 "Wait Event 발생정도"에 따라 모니터링 가능하다 프로세스가 동작할때 세분화하여 개별적인 병목구간에 wait event가 발생 SGA접근. buffer cache , write redo log 등등 oracle 의 wait event는 모두 1100가지가 넘는다 (11g 기준) 주요 wait event 2-30개만 알면 된다 유형 Event 명 내용 Disk iO dbfile Sequential Rea..
2024.03.03
[Oracle] SID vs SERVICE_NAMES vs DB_NAME vs GLOBAL_DBNAME 차이점
• SID: Instance의 고유명을 나타냄. RAC 구조에서 instance가 2개라면, 각 instance 마다 고유의 SID를 가 • SERVICE_NAMES 개념적으로 DB에서 서비스되는 Database 서비스명을 의미, 일반적으로 1개 또는 여러 개의 instance가 결합되어 서비스 가능. RAC구조에서 여러 인스턴스에 대해 service name을 하나로만 설정할 수 있다. (instance 마다 service name 이 달라야하는게 아님 ) + 한 instance에 여러 service name 이 있을 수 있다. listener 가 service 명을 확인하고, 만일 해당 service name이 여러 instance를 가리킬 경우, 부하를 계산해서 접속을 한다 (load balanci..
2024.03.03
OLTP란 Batch Process
RealTime & OLTP란? OLTP(On-Line Transaction Processing) 실시간으로 DB 데이터를 조회/갱신하는 시스템 대부분의 업무시스템 (금융/통신/ERP등조회업무, 쇼핑몰주문, 콘서트예매등) 건당 매우 빠른 수행시간이 생명 (보통0.01 ~1초이하) 빠른 수행시간을 위해 I/O Latency가 중요 실제 업무에서 - 주식거래(코스콤) . 콘서트 예매는 micro second 단위로 나와야한 Batch Processing란? 작업을 모아두었다가 한번에 대량의 데이터 처리 주로, 야간,주말,월말 등 정산/마감/통계 등 대량의 데이터를 일괄처리 대량의 데이터 처리 성능을 위해선 I/O Throughput 이 중요 Tunning 방식 - SQL tunning (70%) - Inst..
2024.02.27
no image
[DBMS] 과연 Index scan(Random Acces)가 빠른것인가? (Random Access vs Sequential Access & Index Scan vs Full Scan)
Database의 IO Access 유형으로는 Sequential , Random 이 있다. random Access는 OLTP성 DB에서 성능에 미치는 영향이 크다 Disk Access Time (Seek Time) - 데이터를 읽고 저장하기 위해. HDD head 위치를 이동시키는데 소요된 시간 Sequential Access (순차scan) - HDD에서 순서대로 검색, 스캔 방식 - table full scan 일 경우 , DB_FILE_MULTIBLOCK_READ_COUNT 설정으로 HDD 에서 한번 읽을 떄 몇개의 block을 읽을건지 정할 수 있다. 해당 파라미터값은 임계치가 있어서 크다고 좋은것이 아니다. Random Access (임의 Access) - 원하는 데이터가 산발적으로 흩어져있..
2024.02.26
no image
[Oracle] Database Block, Clustering Factor란?
DataBase Block DataBase Block 이란?- DB 데이터검색과저장의가장기본단위(8K, 16K, 32K, 64K )\- 모든 보통 DB I/O 는 DB Block 단위로 수행- Block 당 평균 수십개의 레코드가 들어갈수있는 크기로 구성- 단 하나의 레코드를 읽을 지라도 최소한1 Block은 Access 해야함  DB 성능에 가장 영향을 미치는게 IO이기에 block 설정이 중요하다  - 100byte row 2개를 insert 한다 가정하면, 한 row씩 IO가 발생한다면 너무 비효율적이다. 한번에 2 row를 IO로 내린다  OS도 block 이 있고 IO가 있는 SW는 다 block 이 있다 .   Q. 백만개의 record 가지는 두개의 테이블. 검색속도가 동일 할까?NO. re..
2024.02.26
no image
[DBMS] DB성능에 미치는 요소/ scan 방법 간단설명
문제를 내볼게요 다음중 DBMS 성능에 가장 영향을 미치는 것은? 1. CPU 2. MEMORY 3. I/O 바로 I/O이다 ( in memory DB가 아니라는 가정하에 ) 물론 cpu, memory 가 영향이 없다는 것은 아니다 . 그럼 IO를 적게 하는 방법은 뭐가 있을까? 1. Storage 쪽 IO를 적게 한다 2. IO자체를 빠르게 한다 3. IO의 형태 (Random Access, Full Scan)를 조정한다 고로 , IO 사전 지식이 필요하다 DBMS 란 - 데이터를 효과적으로 저장하고, 갱신하고 조회하기 위한 시스템이다 어떻게 저장을 해야 빠르게 저장/갱신/조회가 가능할까 ? 어떻게 저장하느냐에 따라 저장/검색 속도가 달라진다 . 1. 데이터을 임의의 공간에 보관할 경우( Random ..
2024.02.25