[Oracle] 오라클의 데이터 처리방식 (LMT vs DMT & ASSM vs MSSM)

반응형

안녕하세요, 우리노트 Benjamin입니다.


오라클 데이터베이스에 데이터가 저장되는 내부 처리 방식에 대해 알아보겠습니다.  

크게 두가지로 DMT와 LMT를 비교해봐야 할 것이며, ASSM과 MSSM을 비교해보아야 할 것입니다.

   

- DMT : Data Dictionary 에서 공간할당을 총괄하기 때문에 경합이 생기기 쉽습니다.

- LMT : Extent 마다 1비트를 할당하여 0,1로 공간이 비어있는지를 표시하여 저장 속도가 빠르지만 공간낭비가 생깁니다.

   

# 오라클은 LMT 사용을 권장합니다.  기존에 DMT로 생성된 테이블 관리를 위해 DMT 명령이 남아있을 뿐 입니다.

   

- MSSM : Segment Header 에서 프리리스트로 여유공간을 갖는 방식입니다

- ASSM : Segment Header 가 각 extents의 header들을 point하고 있는 계층구조 입니다.

   

그러면 어떻게 조합하여 사용하는게 좋을까요..

   

1. LMT + ASSM  -- Default : 오라클 권장

   

   SQL> create tablespace tbs1 datafie '$ORACLE_BASE/oradata/testdb/tbs1.dbf' size 100m

                      extent management LOCAL         segment space management AUTO;

   

 LMT + ASSM은  Default 값이기 때문에 아래와 같이 datafile을 생성해도 동일한 결과를 얻습니다.

   SQL> create tablespace tbs1 datafile '$ORACLE_BASE/oradata/testdb/tbs1.dbf' size 100m

   

2. LMT + MSSM

   

   SQL> create tablespace tbs1 datafie '$ORACLE_BASE/oradata/testdb/tbs1.dbf' size 100m

                      extent management LOCAL         segment space management MANUAL;

   

3. DMT + ASSM  --> 불가능

   

   SQL> create tablespace tbs1 datafie '$ORACLE_BASE/oradata/testdb/tbs1.dbf' size 100m

                      extent management DICTIONARY segment space management AUTO;

   

4. DMT + MSSM

   

   SQL> create tablespace tbs1 datafie '$ORACLE_BASE/oradata/testdb/tbs1.dbf' size 100m

                      extent management DICTIONARY segment space management MANUAL;

   

*  DBCA로  DB생성 --> System Tablespace : LMT  --> Datafile : LMT 만 생성가능

   수동 DB생성       --> System Tablespace : DMT  --> Datafile : LMT, DMT 모두 가능



댓글

Designed by JB FACTORY