안녕하세요.
$ onstat -d
Informix Dynamic Server 2000 Version 9.21.UC2 -- On-Line -- Up 10:58:45 -- 140988 Kbytes
Dbspaces
address number flags fchunk nchunks flags owner name
16abe7d0 1 0x2 1 1 M informix rootdbs
16abeeb8 2 0x8002 2 1 M S informix slobdbs
16aeed70 3 0x2 3 1 M informix userdbs
16aeeeb8 4 0x2001 4 1 N T informix tempdbs
5 active, 2047 maximum
.....
위와 같이 임시 dbspace(tempdbs)의 플래그에 T가 있는지요 ?
이 플래그는 임시 dbspace를 가리키는 플래그로 엔진이 시작될 때
내부의 모든 데이터가 자동으로 제거됩니다. 그리고 이를
$ONCONFIG에 등록을 할 경우 서버가 이곳을 임시 영역으로 사용하게
됩니다.
$ONCOFNIG에 등록을 하고 서버를 재기동할때까지 적용이 되지 않으며
재기동시 online.log에 임시영역이 추가되었을 경우 이에대한 메시지가
로깅됩니다.
그럼 수고하세요.
>>나그네 님께서 쓰시길<<
:: 임시 테이블과 temp dbspace
::
:: Temp dbspace를 만든 후 $ONCONFIG 파일에 등록하고 DB server를 재가동했습니다. 그런 다음 임시 테
:: 이블을 만들었는데, 이 temp dbspace를 사용하지 않는 것 같습니다. Temp dbspace를 사용하지 못하는
:: 이유가 무엇인지요?
::
:: 우선, DB server가 임시 데이터를 만들어 사용하는 경우는 두 가지 형식이 있습니다. 임시 파일(tempor
:: ary files)과 임시 테이블(temporary tables)이 그것입니다.
::
:: 임시 파일은
:: 색인을 사용할 수 없는 칼럼에 ORDER BY나 GROUP BY를 사용하는 SELECT문, 중복값을 골라내야 하는 U
:: NIQUE, DISTINCT를 사용하는 SELECT 문을 실행하거나, 색인을 사용할 수 없는 칼럼으로 두 테이블 간
:: 에 sort-merge 조인을 실행하는 SELECT문 실행, 또는 hash 조인이 사용되면서 모든 데이터를 공유 메모
:: 리에 올려 놓고 작업할 수 없는 환경에서 hash 테이블을 생성하는 경우, 색인 만들 때 생성되며, warm r
:: estore시에 논리 로그 파일 역시 임시 파일로 생성됩니다.
::
:: 임시 테이블은
:: SELECT문에 INTO TEMP 절을 사용할 때나, CREATE TEMP TABLE문으로 임시 테이블을 생성할 때, 그리
:: 고 BLOB 데이터가 애플리케이션으로부터 DB Server에 있는 내장 프로시져로 전달될 때와 광역 BLOB 데
:: 이터 변수가 선언되고 값이 할당될 때 임시테이블이 생성됩니다.
::
:: 이러한 임시 파일과 임시 테이블은 사용되는 영역에도 차이가 있습니다.
::
|