database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 20869 게시물 읽기
No. 20869
dictionary에서 locally 로 변환 가능한지
작성자
궁금이
작성일
2004-11-30 18:09
조회수
2,254

locally가 성느이 더 좋다는데

현재 돌아가는 테이블 스페이스가 dictionary인데 locally로 변환 가능한가요?

8i이구요 db를 내리고 변환해야하는지요...

변환하면 어떤점에서 좋은지 설명좀 부탁합니다.

이 글에 대한 댓글이 총 3건 있습니다.

아래와 같이 dbms_space_admin 패키지를 활용하면 테이블스페이스를 재생성하지 않고도 DMT -> LMT 전환이 가능합니다.

문제는 아래와 같이 변환하면 단점이 있습니다.

아래 방법은 단순히 Data Dictionary의 UET$, FET$를 쓰는 대신에 데이타파일의 비트맵을 이용한 Extents 관리 방식의 장점을 취하는 것만 가능할 뿐이지...

LMT의 관리 방식의 장점까지 얻을 수는 없습니다.

(즉, 이미 들어있던 Extents까지 LMT에 맞도록 재구성이 되는게 아닙니다.)

 

BEGIN
   SYS.DBMS_SPACE_ADMIN.tablespace_migrate_to_local ('USERS');
END;

 

위와 같이 변환하면 순식간에 변환이 이루어지지만 LMT의 관리 방법의 장점(Extents를 자동으로 관리해주는...)는 취할 수 없습니다.

그러니까 여전히... create table시 Storage 절을 지정해준다거나 하는 일을 해주어야 합니다. initial, next, pctincrease, maxextents 파라미터도 여전히 설정해주어야 합니다.

 

변환하기 전후로 아래 쿼리를 실행해보면... extent_management 만 DICTIONARY에서 Local로 변환되었을 뿐... Allocation_type은 여전히 User로 되어있을겁니다.

진정한 LMT는 Uniform이나 System이어야 합니다.

 

select tablespace_name, extent_management, allocation_type from dba_tablespaces;

 

 

결론

가능은 하지만... 가급적... 새로 테이블스페이스를 생성해서 alter table ... move tablespace ... 명령어로 이동시키는 방법을 사용하는게 진정한 LMT의 강점을 100% 활용하는 방법입니다.

김주현님이 2004-11-30 19:27에 작성한 댓글입니다.
이 댓글은 2004-11-30 19:29에 마지막으로 수정되었습니다. Edit

윗분 말씀대로 100%로 LMT 의 기능은 다 사용 못하며, DMT에서 LMT로의 변환 과정및 변환 후에 버그가 약간씩 있으니 주의하셔야 합니다.

8i 라면 정확한 버전이 어떻신지요? 버전에 따라서 지원여부를 잘 확인하셔야 합니다. 815 는 변환이 불가 한 것으로 알고 있습니다.

 

 그리고 system tablespace 영역의 변환은 불가 하며, temporary tablespace 의 변환도 불가 합니다. 단 temporary tablespace 의 경우 drop 후 locally managed 방식으로 다시 생성해 주면 됩니다.

 

 그리고 데이터 화일에 비트맵정보를 담기 위한 충분한 공간이 필요하니 이 부분들도 체크가 있어야 할거 같습니다.

 

 윗 분 말씀대로 신규로 생성하여 move 나 기타 export/import 를 이용해서 migration 하는 방식이 가장 깔끔한 방법이라고 생각하네요..

 

 하지만 LMT 의 효능에 대해서는 충분한 분석이 있어야 할것으로 생각합니다. 물론 저도 8i 에서 locally managed 방식을 사용한 경험이 있으며, 9i release 2 에서는 default tablespace  관리 방식이 모두 LMT 이므로 모두  LMT 를 사용해 봤는데... 제 판단으로는 관리 방식이 편해 졌으며, 성능도 향상은 있었씁니다. 하지만 제가 아는 DBA 분은 8i 에서 LMT 를 지양 하시는 분들도 있답니다.  좋은 기능과 밴더들의 해석들이 항상 상황에 맞는 것은 아니니까요....

 

 수고하세요..

나그네님이 2004-12-01 08:44에 작성한 댓글입니다. Edit

답변 감사합니다.. alter 하고 move하는편이 좋은것 같습니다.

워낙 초보라..

locally의 장점이 extents 관리방식이라고 했는데

insert나 update가 많은 곳에 적합한가요?

궁금이님이 2004-12-01 21:44에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
20872Format 이라 하나요? [1]
아폴론
2004-12-01
1559
20871테이블과 제약조건을 한번에 복사하는 법...점 알려주세여...제발... [2]
김세준
2004-11-30
2177
20870백업질문 [1]
사랑넷
2004-11-30
1145
20869dictionary에서 locally 로 변환 가능한지 [3]
궁금이
2004-11-30
2254
20868프로시저에서 synonym 인식 문제 [1]
김새글
2004-11-30
2732
20867업데이트 테이블... [2]
짝궁뎅
2004-11-30
1635
20866[나그네님] 오라클 윈도NT용 8.1.7 패치 구할수없을까여? [1]
가영아빠
2004-11-30
1030
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다