테이블 스페이스 작동방식
오라클 에서는 테이블스페이스라고 불리우는 테이블이 저장될 공간을 먼저 만들고 나서 테이블을 생성합니다. 테이블에 실질적으로 저장되는 장소라고 생각하시면 됩니다. 이러한 작동방식은 각각의 테이블을 테이블스페이스별로 나누어서 관리와 퍼포먼스의 향상을 가지고 옵니다. 테이블스페이스를 생성하면 정의된 용량만큼 미리 확보한 테이블스페이스가 생성되어지고 생성되어진 테이블스페이스에 테이블의 데이타가 저장됩니다. 이렇게 설정된 데이터 스페이스에 용량이 가득차면 오라클 서버가 죽습니다. 그러므로 관리를 잘해주어야합니다. 하지만 또 테이블 스페이스마다 용량을 너무나도 크게 잡아버리면 문제가 되는게 용량을 적게 차지하고 있다고해서 가변적으로 max용량이 줄어들지는 않습니다. 고로 또 용량낭비가 되어버릴 수 있는 문제가 될 수 있습니다..
검색하니까 이렇게 나온다.
이사실을 모르고 스키마를 만들고 따로 tablespace 디폴트 설정을 해주지 않았더니
users 안에 만들어졌다;;
하지만 걱정 마시라
디비버로도 간편하게 바꿀수 있다.
properties 안에 tablespace를 클릭해서 변경 후 저장하면된다.
물론, 쿼리문으로 직접 바꿔줘도 된다.
alter table [테이블명] move tablespace [테이블 스페이스명]
전체 테이블 스페이스 조회
select * from dba_tablespaces;
하지만, 인덱스도 똑같이 user에 tablespace가 지정되어있었다.
이것도 변경해준다..
alter index "스키마"."인덱스명" rebuild tablespace "테이블스페이스명";
변경할 테이블이 많아
어마어마하게 복붙을 하였다;;
흑흑
더 늦기 전에 발견해서 다행이다.
USER로 하지말고 테이블 만들기전에
반드시 테이블 스페이스를 지정해주자.
TableSpace는 말그대로 테이블을 저장할 공간(위치)를 지정하는것으로
테이블이 저장되는 공간이다.
오라클 에서는 테이블스페이스라고 해서 테이블이 저장될 공간을 먼저 만들고 나서
테이블을 생성한다. 각각의 테이블을 테이블스페이스별로 나누어서 관리와 퍼포먼스의
향상을 가지고 오는것이다.
테이블스페이스를 생성하면 정의된 용량만큼 미리 확보한 테이블스페이스가 생성되어
생성되어진 테이블스페이스에 테이블의 데이타가 저장된다..
예를 들면 많은 데이터가 쌓일 게시판 테이블은 기본용량 100메가 자동확장 10메가로
테이블스페이스를 만들어서 그곳에 게시판 테이블을 만들어 쓰면 게시판 데이터는 그곳에
100메가까지 데이터가 저장되고 용량 초과시 자동적으로 10메가단위로 테이블 스페이스의
크기는 확장된다.
이렇게 각 테이블의 특성에 맞게 테이블스페이스를 만들어 활당하면 좋다. 물론 각
스키마별로 지정된 테이블스페이스를 만들어 써야 관리적측면에서 무척이나 효율적이다.
'DataBase' 카테고리의 다른 글
[AWS] DB에서 파라미터를 통한 RDS 인스턴스명 찾기 (0) | 2024.04.25 |
---|---|
MySQL InnoDB Architecture (0) | 2023.04.13 |
[Oracle]ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 (0) | 2022.08.17 |
[Oracle] ORA-00979: GROUP BY 표현식이 아닙니다 (0) | 2022.08.17 |
ORACLE TO_DATE 사용법, 다음날 DATE 조회하기 (0) | 2022.08.16 |