SQL_TABLESPACE 연결, 확인 & DATA DICTIONARY (2)
TABLESPACE 연결
§ 형식
▶ 계정 연결
[ SQL> create user 계정명 identified by 암호 default tablespace 테이블스페이스명; ]
※ 해당 계정에서 만든 모든 테이블, 뷰, 시퀀스 등이 연결한 테이블스페이스에 저장됨
▶ 테이블 연결
[ SQL> create table 테이블명 tablespace 테이블스페이스명; ]
※ 따로 설정하지 않으면 [tablespace users]가 생략된 상태로 테이블이 생성됨
→ 작업 내용이 USERS 테이블스페이스에 저장
# 예제
▶ sys 계정에서 oradata2를 테이블스페이스로 갖는 kim2 유저 생성
[ SQL> create user kim2 identified by kim2 default tablespace oradata2;
사용자가 생성되었습니다. ]
※ kim2계정에서 작업한 모든 내용은 oradata2 테이블스페이스에 저장됨
▶ sys 계정에서 oradata2를 테이블스페이스로 갖는 t2테이블 생성
[ SQL> create table t2(c1 number) tablespace oradata2;
테이블이 생성되었습니다. ]
※ t2테이블에서 작업한 내용은 oradata2 테이블스페이스에 저장
▶ kim2 계정에서 oradata2를 테이블스페이스로 갖는 test테이블 생성
[ SQL> create table test(id number);
테이블이 생성되었습니다. ]
※ kim2 계정은 기본 테이블스페이스로 oradata2가 연결되어 있기 때문에
테이블을 생성하면 자동으로 oradata2에 저장됨
TABLE SPACE 확인_DATA DICTIONARY
※ user_users
해당 계정과 계정에 연결된 테이블스페이스의 정보를 담고 있는 Oracle 시스템 테이블
▷ [ SQL> desc user_users ]
이름 | 널? | 유형 |
---|---|---|
USERNAME | NOT NULL | VARCHAR2(30) |
USER_ID | NOT NULL | NUMBER |
... | ... | ... |
DEFAULT_TABLESPACE | NOT NULL | VARCHAR2(30) |
TEMPORARY_TABLESPACE | NOT NULL | VARCHAR2(30) |
... | ... | ... |
※ user_tables
해당 계정의 테이블과 연결된 테이블스페이스 정보를 갖고 있는 Oracle 시스템 테이블
▷ [ SQL> desc user_tables ]
이름 | 널? | 유형 |
---|---|---|
TABLE_NAME | NOT NULL | VARCHAR2(30) |
TABLESPACE_NAME | VARCHAR2(30) | |
... | ... | ... |
# 예제
▶ kim2 계정에서 현재 계정과 계정에 연결되어 있는 default tablespace 확인
[ SQL> select username,default_tablespace from user_users; ]
USERNAME | DEFAULT_TABLESPACE |
---|---|
KIM2 | ORADATA2 |
▶ kim2 계정 내의 테이블과 테이블에 연결되어 있는 tablespace 확인
[ SQL> select table_name,tablespace_name from user_tables; ]
TABLE_NAME | TABLESPACE_NAME |
---|---|
TEST | ORADATA2 |
테이블스페이스를 계정/테이블에 연결하고, 연결된 테이블스페이스를 확인하는 방법에 대해 알아보았습니다.
작업 내용 또는 계정에 따른 저장 공간의 분리가 필요하다면 테이블스페이스를 사용할 수 있겠습니다.