Undo와 Redo Undo란 DML 트랜잭션을 취소하여 데이터베이스를 트랜잭션 이전의 상태로 되돌리는 것으로 작업 롤백과, 읽기 일관성, 복구를 합니다. DML 트랜잭션(update, insert, delete)이 발생하게 되면, 변경 이전의 데이터(원본 데이터)인 Undo Data는 전부 Undo Segment에 저장됩니다. 이때 Undo Segment를 저장하고 있는 Tablespace가 바로 Undo Tablespace입니다. Redo란 단어 그대로 "다시 하다"라는 뜻을 가지고 있습니다. 즉, DML 트랜잭션을 다시 수행한다는 의미겟죠?Redo는 기본적으로 복구의 역할을 합니다. DML 트랜잭션을 수행하던 도중 서버에 장애가 발생하여 데이터베이스가 shutdown 되었을 때 데이터베이스를 재기..
SCN(System Change Number)DB의 변경이 발생한 시점. 즉 COMMIT이 발생하면 트랜잭션은 고유한 번호를 받게 됩니다. 이 때 발생하는 번호가 SCN(System Change Number)입니다. 이 SCN을 통해 트랜잭션을 관리할 수 있고 장애 발생 시 복구할 때 사용되는 키가 됩니다.또한, SCN(System Change Number)을 통해서 Data files, Control File, Redo Log File의 동기화 정보를 맞춥니다. SCN에 기록된 파일을 통해 복구 위치 파악하기Data Fiiles: 실제 데이터 저장되는 디스크 상의 물리적 파일이 파일을 OS 상에서 삭제 및 이동하면 안되고 DB에서 삭제해야 합니다. Control File: DB의 제어 정보를 가지고 있..
병렬 처리(Parallel Processing)오라클에서 병렬 처리(Parallel Processing)란 하나의 SQL를 처리하기 위해 여러 개의 프로세스를 띄워 작업 속도를 보다 빠르게 하는 것을 목표로 하는 기능입니다. 기본적으로 사용자 세션(User Session)이 붙게 되면(=SQL Plus 혹은 DBeaver, Toad 등과 같은 툴로 접근하는 경우) 서버 메모리에 Dedicate Server를 띄우게 됩니다. 그리고 하나의 Dedicate Server가 한 세션에 대한 SQL를 처리하게 됩니다. 하지만, 병렬 처리(Parallel Processing)는 여러 개의 Dedicate Server를 통해 SQL를 분할하여 처리합니다. 병렬 처리(Parallel Processing)는 성능 향상에..
파싱(Parsing) SQL은 SGA(System Global Area) 내부 Shared Pool의 라이브러리 캐시(Library Cache)에는 SQL 실행 정보(실행 계획 등...)가 들어있는데, 이러한 실행 정보를 만드는 과정을 파싱(Parsing)이라고 합니다. 파싱(Parsing)은 SQL이 들어오면 이를 분석하여 어떻게 실행할지 계획을 세우고 실행하여 결과를 만들어 냅니다. 이러한 파싱은 소프트 파싱(Soft Parsing)과 하드 파싱(Hard Parsing)으로 나뉘어집니다. 소프트 파싱(Soft Parsing)파싱(Parsing)을 할 때 SQL 자체가 잘못된 SQL. 즉, 문법이 맞지 않거나, 존재하지 않는 테이블에 CRUD 작업을 하는 SQL이 들어올 수 있는데, 이 때 잘못된 SQ..
세그먼트(Segment)와 오브젝트(Object)데이터베이스에서 공간은 테이블스페이스(Tablespace)를 의미합니다. 테이블스페이스에 저장되는 요소에는 테이블(Table), 인덱스(Index), 파티션(Partition) 등이 있습니다. 이렇게 데이터를 가지고 있는 요소들을 세그먼트(Segment)라고 합니다. 반면, 트리거(Trigger), 프로시저(Procedure), 함수(function)과 같이 데이터를 가지고 있지 않고 어떠한 코드만 가지고 있는 것을 오브젝트(Object)라 합니다. 오브젝트(Object)는 세그먼트(Segment) 보다 조금 더 큰 개념으로 오브젝트(Object)는 세그먼트(Segment)를 포함하고 있습니다. 또한, 오브젝트(Object)는 저장 공간을 할당하지 않은 객..
인덱스의 구조에는 B- Tree, B+ Tree, Hash, Bitmap 등 다양한 구조가 있습니다. 이번 글에서는 Bitmap 구조에 대해서 알아보도록 하겠습니다.비트맵 인덱스(Bitmap Index)인덱스 칼럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법입니다.비트맵 인덱스의 목적은 키(Key) 값을 포함하는 행의 주소를 제공하는 것입니다.B-Tree 인덱스와 달리 카디널리터 값이 낮은 경우(특정 데이터 집합의 유니크한 값의 개수가 적은 경우. 즉, 중복도가 높은 경우)에 사용하기 좋습니다.비트 맵은 흔히 색상표를 예시로 많이 드는데, 아래와 같은 형태로 표현됩니다.분포도가 나쁜 Column에 사용하기 적합하며 성능 향상의 효과를 얻을 수 있습니다.데이터가 Bit로 구성되..
동시성 제어(Concurrency Control)동시성 제어란?동시성 제어란 DBMS가 다수의 사용자 사이에서 동시에 작용하는 다중 트랜잭션의 상호간섭 작용에서 데이터베이스를 보호하는 것을 의미합니다. 일반적으로 동시성을 허용하면 일관성이 낮아지게 됩니다. 그래서 DBMS는 동시성을 제어할 수 있도록 LOCK 기능과 트랜잭션의 격리성 수준을 조정할 수 있는 SET TRANSACTION 명령어를 제공하고 있습니다.이러한 동시성을 제어하는 방법에는 낙관적 동시성 제어와 비관적 동시성 제어가 있습니다.낙관적 동시성 제어사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정.데이터를 읽은 시점에 LOCK을 걸지 않는 대신 수정 시점에 값이 변경되었는지 반드시 검사해야 합니다.비관적 동시성 제어사용자들이 같..
Tablespace 확장 방법1. Resize 방법alter database datafile '+DATAC1/ORA19/DATAFILE/TS1_01' resize 10G;alter database tempfile '/u03/oradata/ORA10/TT_TEMP01.dbf' resize 1000M;TEMP_Tablespace: Sorting이나 GROUP BY 할 때 사용하는 임시적인 공간입니다.2. Add 방법alter tablespace TS1 add datafile size 10G; # Oracle Managed Filesystem의 경우 이렇게 파일 이름을 지정하지 않습니다.alter tablespace TS1 add datafile '+DATAC1/ORA19/DATAFILE/TS1_02' siz..
- Total
- Today
- Yesterday