[Oracle] 오라클의 데이터 처리방식 (LMT vs DMT & ASSM vs MSSM)
- Information Logs/IT Notes
- 2014. 8. 26. 22:47
안녕하세요, 우리노트 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 모두 가능