본문 바로가기

Engine5

DB 엔진 - 도메인 char, varchar2 테이블을 만들면서 칼럼의 도메인을 char 또는 varchar2로 설정한 적이 있을 것이다. 개인이 sql을 공부한하던가, 저장공간 대비 DB 사용공간이 적다면 두 도메인을 사용하는 데 신경 쓰지 않아도 되지만, 물리적인 디스크 내부의 공간을 효율적으로 사용해야 한다면 두 도메인 선택에 신중해야 한다. CHAR create table test( test1 char(10) ) / insert into test values('t1') char도메인을 사용하는 칼럼은 insert시 사용자가 정한 크기만큼 고정적인 공간을 할당한다. 위 코드 test테이블의 test1 칼럼의 't1'은 2byte 밖에 공간을 사용하지 않지만 물리적인 디스크 공간에 10byte만큼 고정적으로 사용할 수 있기 때문에 할당된 크기 내.. 2022. 12. 28.
DB 엔진 - Execution server process가 파싱(Parshing)작업이 끝나면 본격적으로 쿼리문을 실행(execution)한다. 다음과 같은 Transaction 1 (Tr1)을 수행한다고 가정하고, row가 들어가있는 block id는 xxa로 가정update y_empset salary = salary * 1.1where id = 10; 1. DML쿼리문(Tr1) 실행시 Table 단위로 RX Lock이 자동으로 걸림Lock이란?1) 트랜잭션의 순차적인 처리를 위해 사용되는 수단 (일관성을 위해 사용)2) Lock에는 Table단위 lock과 Row 단위 lock이 존재3) Table Lock은 아래로 내려갈수록 병행성은 낮아지고 일관성은 높아진다. ( Lock 강도가 표에서 내려갈수록 올라감)Table Lock .. 2022. 12. 22.
DB 엔진 - Parsing, hash value 사용자가 쿼리문를 수행하면 DB 엔진의 서버(Back ground process)는 첫 번째로 Parsing 작업을 한다. Parsing1. syntax check : 키워드 오타, 띄어쓰기, 문법검사2. semantic check : 문법 의미 검사( 키워드 순서 등등 )3. privileges check : 유저, 객체, 테이블의 권한 검사 (데이터 사전을 통해 검사)4. parse tree 5. Execution plan : 실행 계획 / 예시)검색하려는 칼럼의 제약조건이 PK라면 index block을 가져와 실행 위 모든 작업은 메모리 SGA의 Shared pool에서 이루어진다.참조 : https://junsgi.tistory.com/27 oracle Hash function value모든 .. 2022. 12. 20.
DB 엔진 - System Global Area SGA란?System Global Area 또는 Shareable Global Area로 DB시점에서 공용으로 사용하는 메모리 공간이다.공간은 5가지로 아래와 같이 구성되어 있다.공간설명Shared Poolparshing 작업을 할 때 사용하는 공간입니다.Database Buffer CacheDB의 접근하고자 하는 block을 가져와 쿼리문을 수행합니다.Redo log Buffer Cache바뀐 데이터의 트랜잭션 id, scn, after 데이터등을 가지고있다 commit시 redo log file에 저장됩니다Java Pool Large Pool Shared Pool은 Library cache와 Data Dictionary cache로 구성되어 있다.Shared Pool 공간설명Library cach.. 2022. 12. 20.
DB 엔진 - Tablespace, segment, extent, (header)block Tablespace란? 1. 데이터베이스 시점에서 디스크에 데이터를 저장하는 가변적이고 논리적인 공간. 2. Tablespace의 용량이 꽉 찬 사실은 데이터 사전을 통해 알 수 있다. 이때 o/s file을 resize를 통해 공간을 늘려주거나 다른 디스크의 dbf 파일을 붙여주는 방법이 있다. ( 여기서 o/s file은 물리적인 파일이다.) 3. DB생성 초기 block size 설정 시 4k로 설정하면 모든 block이 4k로 구성된다. 4. table drop시 모든 내용을 삭제하고 table이 차지하던 segment를 빈 공간으로 내어준다. 5. Tablespace를 지정해주는 방법으론 총 두 가지가 있다. 첫 번째는 user를 생성할 때 default, temporary로 지정 해주는 방법과.. 2022. 12. 19.