테이블 생성하기
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 |