Oracle DB구조2 : Instance의 SGA 메모리구조

💡 핵심 요약 (TL;DR)

Oracle DB구조2 : Instance의 SGA 메모리구조의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. InstanceSGA(System Grobal Area)메모리구조Shared poolLibrary cache :- 최근에 실행된 sql구문과 실행계획이 저장되는 공간- LRU(Least Recently Used Algorithm) 알고리즘으로 관리됨.- 대소문자, 공백까지 일치가 되어야 hit됨.Data dictionary cache : - 최근에 사용된 DB 정의정보가 저장된 공간- 정의정보란 file, object, 권한, 제약조건 등- LRU(Least Recently Used Algorithm) 알고리즘으로 관리됨.DB buffer cache실제 실행 작업을 하는 메모리 구조-최근에 사용된 Data block이 저장된 곳-LRU 알고리즘으로 관리됨Redo log buffer-DB에서 발생된 변경작업의 로그정보(Redo data)가 기록되는 곳-순환형으로 관리됨Background ProcessPMON- User proc fail시 진행하던 트랜잭션 롤백 및 선점하고 있던 자원과 lock을 해제함SMON- Instance fail(= DB 비정삭적인 종료) 후 DB 재시작될 때 DB동기화를 시켜줌DBWR- DB buffer cache의 Dirty block을 datafile로 기록함- 체크포인트 발생시 기록함LGWR- commit이 발생될 때 redo log buffer의 로그정보(= redo data)를 redo log file로 기록함CKPT- 체크포인트 발생시 DBWR에게 알려줌.- DBWR기록 후 datafiles 헤더와 controlfile에 마지막 체크포인트 번호를 갱신함DatabaseDatabase 3대파일Data files실제 data가 저장되는 공간data dictionary가 저장되는 공간datafile 정보 조회 : v$datafile(영구data), v$tempfile(임시data)Control fileDB의 무결성 유지/관리할 수 있는 모든 동기화정보가 기록된 공간DB의 논리적/물리적 구조 정보, 마지막 작업번호 등이 저장DB당 하나이상 존재 -> 최대8개까지 다중화기능제공오라클 권장 3개Control file 정보조회: v$controlfileRedolog filesDB에서발생된 변경 작업의 로그정보(Redo data)가 기록된 공간주목적 : Datafile recovery(복구)DB당 최소 2개이상 존재순환형 관리Redo log Group(논리적 구조) : DB당 2개이상Redo log Member(물리적 구조,file) : Redo log Group당 1개이상오라클 권장사항 : Group 3개, Member 2개씩Redolog files 정보조회 : v$log, v$logfileParameter fileInstance의 정의정보가 기록된 공간SGA할당정보, B/G proc정보 등DB의 여러 설정 정보가 기록된 공간위치 : $ORACLE_HOME/dbs이름 : spfileSID.ora 또는 initSID.oraPassword fileDB를 시작/종료할 수 있도록 인증해주는 공간.위치 : $ORACLE_HOME/dbs이름 : orapwSIDOptionalArchived log files- Redo log file의 오프라인 복사본- 주목적 : Datafile Recovery- log mode : Narchive log mode VS Archive log mode 중 선택- log mode 정보 조회 : v$database을 적용할 수 있다.

자세히 보기

Oracle DB구조1 : Database

💡 핵심 요약 (TL;DR)

Oracle DB구조1 : Database의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. InstanceSGA(System Grobal Area)메모리구조Shared poolLibrary cache :- 최근에 실행된 sql구문과 실행계획이 저장되는 공간- LRU(Least Recently Used Algorithm) 알고리즘으로 관리됨.- 대소문자, 공백까지 일치가 되어야 hit됨.Data dictionary cache : - 최근에 사용된 DB 정의정보가 저장된 공간- 정의정보란 file, object, 권한, 제약조건 등- LRU(Least Recently Used Algorithm) 알고리즘으로 관리됨.DB buffer cache실제 실행 작업을 하는 메모리 구조-최근에 사용된 Data block이 저장된 곳-LRU 알고리즘으로 관리됨Redo log buffer-DB에서 발생된 변경작업의 로그정보(Redo data)가 기록되는 곳-순환형으로 관리됨Background ProcessPMON- User proc fail시 진행하던 트랜잭션 롤백 및 선점하고 있던 자원과 lock을 해제함SMON- Instance fail(= DB 비정삭적인 종료) 후 DB 재시작될 때 DB동기화를 시켜줌DBWR- DB buffer cache의 Dirty block을 datafile로 기록함- 체크포인트 발생시 기록함LGWR- commit이 발생될 때 redo log buffer의 로그정보(= redo data)를 redo log file로 기록함CKPT- 체크포인트 발생시 DBWR에게 알려줌.- DBWR기록 후 datafiles 헤더와 controlfile에 마지막 체크포인트 번호를 갱신함DatabaseDatabase 3대파일Data files실제 data가 저장되는 공간data dictionary가 저장되는 공간datafile 정보 조회 : v$datafile(영구data), v$tempfile(임시data)Control fileDB의 무결성 유지/관리할 수 있는 모든 동기화정보가 기록된 공간DB의 논리적/물리적 구조 정보, 마지막 작업번호 등이 저장DB당 하나이상 존재 -> 최대8개까지 다중화기능제공오라클 권장 3개Control file 정보조회: v$controlfileRedolog filesDB에서발생된 변경 작업의 로그정보(Redo data)가 기록된 공간주목적 : Datafile recovery(복구)DB당 최소 2개이상 존재순환형 관리Redo log Group(논리적 구조) : DB당 2개이상Redo log Member(물리적 구조,file) : Redo log Group당 1개이상오라클 권장사항 : Group 3개, Member 2개씩Redolog files 정보조회 : v$log, v$logfileParameter fileInstance의 정의정보가 기록된 공간SGA할당정보, B/G proc정보 등DB의 여러 설정 정보가 기록된 공간위치 : $ORACLE_HOME/dbs이름 : spfileSID.ora 또는 initSID.oraPassword fileDB를 시작/종료할 수 있도록 인증해주는 공간.위치 : $ORACLE_HOME/dbs이름 : orapwSIDOptionalArchived log files- Redo log file의 오프라인 복사본- 주목적 : Datafile Recovery- log mode : Narchive log mode VS Archive log mode 중 선택- log mode 정보 조회 : v$database을 적용할 수 있다.

자세히 보기

Subquery3: exists연산자, not exists연산자

💡 핵심 요약 (TL;DR)

Subquery3: exists연산자, not exists연산자의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. * null값 해결법 => nvl()함수사용 또는 not null 연산자 사용을 적용할 수 있다.

자세히 보기

Subquery4: with절

💡 핵심 요약 (TL;DR)

Subquery4: with절의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. * 복합 query내에서 동일한 쿼리블록이 두 번 이상 발생하면 그 블록을 select문에 사용가능을 적용할 수 있다.

자세히 보기

Top-N분석

💡 핵심 요약 (TL;DR)

Top-N분석의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. * 이때 서브쿼리를 사용하면 숫자를 먼저 지정한 테이블을 사용하기 때문에 조건을 중간부터(BETWEEN문 사용가능) 사용할 수있음.

자세히 보기

단일행함수 : 조건부 표현식

💡 핵심 요약 (TL;DR)

단일행함수 : 조건부 표현식의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. * SQL 문에서 IF-THEN-ELSE 논리 사용 가능을 적용할 수 있다.

자세히 보기

Data Dictionary

💡 핵심 요약 (TL;DR)

Data Dictionary의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. 2. Data Dictionary Views(딕셔너리 뷰) : Base Table을 사용자가 보기 쉬운 형태로 만들어 놓은 뷰.

자세히 보기

SQL 기억해야 할 쿼리

💡 핵심 요약 (TL;DR)

SQL 기억해야 할 쿼리의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. 즉 1번과 2번을 join한 쿼리이고 개발자가 자주 사용하는 쿼리이다을 적용할 수 있다.

자세히 보기

SQL의 OBJECT종류 : 시퀀스(Sequence)

💡 핵심 요약 (TL;DR)

SQL의 OBJECT종류 : 시퀀스(Sequence)의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다. 시퀀스(Sequence) | 자동으로 고유한 숫자값을 생성해주며 주로 기본키 값을 생성하기 위해 사용 | 시퀀스명.nextval, 시퀀스명.currval | create sequence, alter sequence, drop sequence을 적용할 수 있다.

자세히 보기