[DB] 테이블 생성, 테이블스페이스 중요성

SSuyn·2023년 5월 24일
0

DataBase

목록 보기
3/10

오늘은 현업에서 테이블을 어떻게 생성하는지 알아보도록 하자.
대부분 테이블만 생성하는 것이 아니라, 테이블, 인덱스, 코멘트, 권한부여, 시노님 을 한꺼번에 생성을 하는 편이다.
시노님을 생성하는 이유는 select로 검색을 할 때 SYS.PART_SUM 이렇게 귀찮게 치지 않아도 테이블 오너를 제외한 PART_SUM 만으로도 검색이 가능하도록 만들기 때문이다.

테이블 생성 스크립트

Table_owner : SYS
Table_name : PART_SUM

/* 테이블 생성 */
CREATE TABLE SYS.PART_SUM
(
NAME varchar2(10) not null,
AGE number not null,
PHONE_NUM number,
ADDR varchar2(50),
CREATED date
)
TABLESPACE TS_MEM_ETC_01;

/* PK 인덱스 생성 */
CREATE UNIQUE INDEX SYS.PART_SUM_PK ON SYS.PART_SUM
(
NAME,
AGE
)
TABLESPACE TS_MEM_ETC_IDX_01;

/* PK 제약조건 생성*/
ALTER TABLE SYS.PART_SUM ADD CONSTRAINT PART_SUM_PK PRIMARY KEY
(
NAME,
AGE
)
USING INDEX SYS.PART_SUM_PK;

/* 코멘트 생성 */
COMMENT ON TABLE SYS.PART_SUM is '파트타임_합계';
COMMENT ON COLUMN SYS.PART_SUM.NAME is '이름';
COMMENT ON COLUMN SYS.PART_SUM.AGE is '나이';
COMMENT ON COLUMN SYS.PART_SUM.PHONE_NUM is '전화번호';
COMMENT ON COLUMN SYS.PART_SUM.ADDR is '주소‘;
COMMENT ON COLUMN SYS.PART_SUM.CREATED is '생성_일시';

/* 권한 부여 */
GRANT SELECT, INSERT, DELETE, UPDATE ON SYS.PART_SUM TO CONNECT;
GRANT SELECT, INSERT, DELETE, UPDATE ON SYS.PART_SUM TO RESOURCE;

/* PUBLIC  시노님 생성*/
CREATE PUBLIC SYNONYM PART_SUM FOR SYS.PART_SUM;
CREATE OR REPLACE PUBLIC SYNONYM PART_SUM FOR SYS.PART_SUM;

위와 같은 형식으로 테이블 생성을 하면 뀼!

테이블스페이스

대학교때 SQL을 배울때는 테이블스페이스에 대한 중요성을 잘 알지 못하였다. 왜 또 다른 공간을 만들어서 데이터를 집어 넣는거지 싶었지만, 회사는 거대한 데이터를 다루기 때문에 한 공간에 모든 데이터를 집어 넣는다면 당연히 문제가 생길 것이다. 각각의 테이블을 테이블스페이스 별로 나누어서 관리함으로써 성능 향상을 가져온다. 테이블스페이스를 생성하면 정의된 용량만큼 미리 확보한 테이블스페이스가 생성되어지고, 생성된 테이블스페이스에 테이블의 데이터가 저장된다.

기본으로 있는 tablespace는 총 4개이고 나머지는 DBA가 추가로 생성하고 지울 수 있다.
(영구적으로 보존되는 객체들을 저장하기 위한 용도)

  • undo : ROLLBACK 대비하여 수정 이전 값을 UNDO segment에 저장한다.
  • temporary : 사용자 쿼리의 요청으로 정렬작업이 필요한 경우 메모리 부담 덜어주기 위해 사용

(데이터베이스가 운영되기 위해 꼭 필요)

  • system : data dictionary table 이 저장되는 공간, 일반 오브젝트 저장하지 말자
  • sysaux : system tablespace 보조로 기존에 system tablespace에 있는 다양한 유틸리티 및 기능 분리하여 저장, AWR 기능 저장되어있음.
profile
한량 DBA

0개의 댓글