임시 테이블과 temp dbspace
Temp dbspace를 만든 후 $ONCONFIG 파일에 등록하고 DB server를 재가동했습니다. 그런 다음 임시 테이블을 만들었는데, 이 temp dbspace를 사용하지 않는 것 같습니다. Temp dbspace를 사용하지 못하는 이유가 무엇인지요?
우선, DB server가 임시 데이터를 만들어 사용하는 경우는 두 가지 형식이 있습니다. 임시 파일(temporary files)과 임시 테이블(temporary tables)이 그것입니다.
임시 파일은
색인을 사용할 수 없는 칼럼에 ORDER BY나 GROUP BY를 사용하는 SELECT문, 중복값을 골라내야 하는 UNIQUE, DISTINCT를 사용하는 SELECT 문을 실행하거나, 색인을 사용할 수 없는 칼럼으로 두 테이블 간에 sort-merge 조인을 실행하는 SELECT문 실행, 또는 hash 조인이 사용되면서 모든 데이터를 공유 메모리에 올려 놓고 작업할 수 없는 환경에서 hash 테이블을 생성하는 경우, 색인 만들 때 생성되며, warm restore시에 논리 로그 파일 역시 임시 파일로 생성됩니다.
임시 테이블은
SELECT문에 INTO TEMP 절을 사용할 때나, CREATE TEMP TABLE문으로 임시 테이블을 생성할 때, 그리고 BLOB 데이터가 애플리케이션으로부터 DB Server에 있는 내장 프로시져로 전달될 때와 광역 BLOB 데이터 변수가 선언되고 값이 할당될 때 임시테이블이 생성됩니다.
이러한 임시 파일과 임시 테이블은 사용되는 영역에도 차이가 있습니다.
|