Temporary Tablespace Group은 잘 알려지지 않는 오라클 기능 중 하나로, Oracle 10g에 추가된 기능이다.
일반적으로 temporary tablespace는 유저에게 지정하여, 특정 유저는 단 하나의 temporary tablespace만을 사용할 수 있었으나, Temporary Tablespace Group은 유저에게 임시 테이블스페이스 그룹을 지정하여 동시에 여러개의 임시 테이블스페이스를 사용하여 정렬 등의 작업 효율을 향상시키는 기능이다.
특징
- 하나 이상의 temporary tablespace로 구성
- temporary tablespace로만 구성됨.
- 명시적으로 생성하지 않고, 첫번째 temporary tablespace가 할당되면 암시적으로 그룹이 생성되고,
- 마지막 temporary table space이 그룹에서 제거되면 삭제됨.
장점
데이터베이스 레벨에서 여러 개의 default temporary tablespace를 지정할 수 있다.
사용자는 동시에 여러 세션에서 여러 개의 temporary tablespace를 사용할 수 있다.
단일 SQL 조작으로 여러 개의 temporary tablespace를 사용하여 정렬할 수 있다.
-> 하나의 임시 파일에 비해 여러 파일에 I/O를 분산시킴으로써 정렬, hash join 등의 작업에 상당한 성능 향상을 기대할 수 있음
추가사항
- temporary tablespace group에 추가 할 수 있는 temporary tablespace 의 개수 제한은 없다.
하나의 temporary tablespace 는 하나의 temporary tablespace group에만 속할 수 있다.
temporary tablespace group 모든 정렬 문제를 개선한다.
예제
- 기존에 생성된 임시 테이블스페이스를 그룹에 할당(그룹 생성)
ALTER TABLESPACE temp TABLESPACE GROUP temp_ts_group;
- 새로운 임시 테이블스페이스를 생성하여 그룹에 추가
CREATE TEMPORARY TABLESPACE temp2
TEMPFILE '/u01/app/oracle/oradata/DB10G/temp201.dbf' SIZE 20M
TABLESPACE GROUP temp_ts_group;
- 할당된 임시 테이블스페이스그룹을 조회할 수 있는 dba_tablespace_groups 딕셔너리
SELECT * FROM dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_TS_GROUP TEMP
TEMP_TS_GROUP TEMP2
2 rows selected.
그룹이 생성되면 테이블스페이스와 동일하게 그룹 자체를 유저나 디폴트 임시 테이블스페이스로 지정이 가능하다.
- 사용자에게 임시 테이블스페이스그룹을 할당
ALTER USER scott TEMPORARY TABLESPACE temp_ts_group;
- 디폴트 임시 테이블스페이스로 그룹을 할당
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_ts_group;
- 그룹에서 테이블스페이스 제거
ALTER TABLESPACE temp2 TABLESPACE GROUP '';
SELECT * FROM dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_TS_GROUP TEMP
1 row selected.
★★★ 참고자료
아래 사이트는 temporary tablespace group과 하나의 임시 테이블스페이스 파일을 사용했을때의 성능 비교 자료를 제공.
https://dbakevlar.com/2011/08/warp-speed-with-temp-tablespace-groups/
요약한다면...
temporary tablespace group은 하나의 temporary tablespace 만을 사용할때 보다 reads : 66% 성능향상, writes - 29% 성능향상이 됨.
※ temporary tablespace group을 구성할때 각각의 temporary tablespace 파일 크기를 동일하게, 위치는 다르게 위치시키는게 I/O 분산 효과가 더 좋다.
'DBMS > Oracle' 카테고리의 다른 글
Real-Time SQL Monitoring - v$sql_plan_mointor 조회하기 (V2) (0) | 2018.09.08 |
---|---|
Real-Time SQL Monitoring - v$sql_plan_mointor 조회하기 (0) | 2018.09.08 |
Real-Time SQL Monitoring 제한(limit) (0) | 2018.09.06 |