본문 바로가기

오라클 ADMIN

Table


테이블 생성하기

CREATE TABLE 테이블명 (칼럼명1 데이터형식, 칼럼명2 데이터형식...) ;


- 테이블 생성시 여러 테이블들을 한 테이블스페이스에 저장하지 않고, 다른 테이블스페이스에 분리시켜 주는 것이 속도, 성능 ↑, 유지 ↓

- LMT - Locally Managed Tablespace 방식을 이용해서 테이블 생성 (이유: 단편화 방지, 조각나는것을 방지하는 것이라고 생각하기) 

         * LMT -> Bitmap을 이용해서 Free Extents 즉, 비어있는 블록 모음을 관리





Temporary Table 

CREATE GLOBAL TEMPORARY TABLE 테이블명 (칼럼1 데이터타입, 칼럼2 데이터타입 ...)


- 데이터 저장용이 아닌 임시 작업용으로 쓰는 테이블

- 임시로 쓰는 만큼 데이터는 영구적이지 않고, 트랜잭션이 끝나거나 세션이 끝나는 시점에서 삭제됨

- 다른 세션과는 공유할 수 없음.

- 더 자세한 내용은 http://hayleyfish.tistory.com/46 참고




Row Migration / Chaining

- Row Migration 


- Chaining

Row Migration 과는 다르게 양쪽 블럭에 데이터가 다 존재한다. 

기존 데이터보다 크기가 큰 새 데이터가 입력될 때, 첫번째 블록에 저장하고 저장되지 못한 나머지 부분은 다른 블록에 이어서 저장된다.

Row Migration 이랑 비슷하게 데이터를 뽑고 싶을 때 두 블록에 접근해야 되기 때문에 성능 저하를 일으킬 수 있음.



P 319 실습첨부



저장 공간 수정하기

ALTER TABLE 테이블명 
PCTFREE 

PCTUSED 

STORAGE (NEXT 용량

MINEXTENTS

MAXEXTENTS     ) ;


- PCTFREE 와 PCTUSED를 주지 않으면 기본값으로 

FLT일때는 PCTFREE: 10 / PCTUSED: 40

ASSM일때는 PCTFREE:10 / PCTUSED는 적용되지 않음.




Allocation Extents (수동)

ALTER TABLE 테이블명

ALLOCATION EXTENT (SIZE 용량

DATAFILE '경로') ;


- Allocation Extents란 공간을 미리 확보

- DB Buffer Cache 에서 Data File로 저장할 시 공간이 부족하게 되면 HWM(High Water Mark, 마지막까지 등록된 블록위치를 알려줌)를 늘려 빈자리를 생성하는데 

이걸 Bump up이라고 함. 계속 Bump up이 일어나게 되면 성능저하의 요인이 될 수 있기 때문에, 

데이터가 많이 들어올 경우 allocation extents를 통해 미리 공간을 확보해 놓는 것이다.

- Deallocation 은 allocation extents를 통해 늘린 용량이 예상보다 낭비되고 있을 때 다시 줄이는 작업



P321 실습첨부하기



Table Reorganisation = REORG 작업

ALTER TABLE 테이블명

MOVE TABLESPACE  T/S명 ;


- 테이블 REORG 작업에는 여러가지 방법이 있다, EXPORT/IMPORT유틸을 사용하는 방법과

  위의 명령어로 테이블을 다른 테이블 스페이스로 이동시키는 방법이 있다.

- 테이블을 DELETE한 후에도 테이블 용량은 줄어들지 않기 때문에 REORG 작업을 통해서 테이블 용량을 줄인다.

- 다른 테이블스페이스로 옮길 경우, 해당 테이블에 인덱스나 뷰 등이 생성되어있다면 재구성해야함.

  테이블을 이동하게 되면 인덱스의 ROWID 정보가 달라지기 때문에 다시 REBUILD작업을 꼭 해줘야 함. 

(Index Rebuild 작업은 http://hayleyfish.tistory.com/48 과 http://hayleyfish.tistory.com/77 를 참고)




TRUNCATE

TRUNCATE TABLE 테이블명;



DROP 

DROP TABLE 테이블명 CASCADE CONSTRAINTS ;


테이블삭제 시 다른 테이블과 제약조건이 걸려있으면 (Foreign Key, Reference Key) 삭제가 되지 않기 때문에

  CASCADE CONSTRAINTS 옵션을 추가해 삭제하면 됨. (자세한 제약조건 내용은 http://hayleyfish.tistory.com/47 를 참고)


Dropping Column

ALTER TABLE 테이블명

DROP COLUMN 칼럼명

CASCADE CONSTRAINTS ;



Unused Option


ALTER TABLE 테이블명

SET UNUSED COLUMN 칼럼명

CASCADE CONSTRAINTS ;


- 실제로 지우지는 않고 지울 예정인 칼럼에 표시를 해두는 방법, 즉 사용하지 않는 열로 표시해두는 것

- 별로 쓰지도 않고, 썼다가 CANCLE 할 수 없는 작업이기 때문에 쓸 때 주의할것!!!





'오라클 ADMIN' 카테고리의 다른 글

Constraints  (0) 2013.01.20
Index  (0) 2013.01.20
Undo  (0) 2013.01.17
Data Block, Extent, Segment  (0) 2013.01.16
Control File, Redo Log File, Data File 관리 연습  (0) 2013.01.16