반응형
예 ) CREATE TABLE emp_family(
emp NUMBER(4) NOT NULL,
fam_name VARCHAR2(10) NOT NULL,
....
CONSTRAINT emp_family_pk PRIMARY KEY(empno,fam_name)
);
테이블 변경
1) ALTER TABLE emp_family ADD (job VARCHAR2(30));
2) ALTER TABLE emp_family MODIFY (job VARCHAR(40) NOT NULL);
테이블 삭제
1) DROP TABLE table;
2) DROP TABLE emp CASCADE CONSTRAINT; // FOREIGN KEY도 다 함께 삭제 된다. (foreign key 란 다른 테이블의 primary key 를 참조하는 키 입니다.)
컬럼제거
1) ALTER TABLE table DROP COLUMN age;
2) ALTER TABLE table SET UNUSED COLUMN age;
1,2 의 차이점 : DROP COLUMN은 물리적으로 삭제 SET UNUSED COLUMN은 논리적으로 사용안함
3) ALTER TABLE table DROP UNUSED COLUMNS ;
- > unused 컬럼들을 물리적으로 삭제
ROW CHAINING(행 연결)
- 행 데이타가 정상적으로 INSERT된 후 삭제작업이 발생하여 하나의 행이 삭제되고 해당블록에는
삭제된 행 크기만큼의 빈 공간이 생김
- 새로운 행 데이타가 입력되면 빈 공간이 존재하는 블록에 데이타가 입력되고 공간부족 현상이 발
생 되면 나머지 데이타가 새로운 블록에 입력된다.
==> SELECT 문에 의한 데이타 검색시 성능 저하현상 발생.
ROW MIGRATION (행 이주)
행 데이타영역에 사용자가 입력한 데이타들이 모두 입력되어 저장공간이 없는 경우
기존 데이타의 변경작업이 일어나면 변경에 의해 저장할 수 있는 공간이 없게된다.
이런 경우 오라클 서버는 변경할 수 없었던 행들을 모구 새로운 블록으로 이동시킨 후 변경작업 수행
==> 행이주(Row-Migration)
- 주로 VARCHAR2 타입을 가진 컬럼에서 발생.
- Row_Migration이 발생한 테이블릐 해당 행을 검색하면 오라클서버는 처음에 데이카가 저장되어
있는 블록을 먼저 검색하고 해당 행이 다른 블록으로 이주되어 있으면 이주된 블록을 다시 읽어
데이타를 검색
- 하나의 행을 검색하기 위해 여러개의 블록을 읽어야 데이타를 가져올 수 있기때문에
검색속도 저하. ( SELECT문 처리시 데이타 검색속도 저하)
PTCTREE 파라메터
ex)
PTRFREE=10 <== 테이블이 생성될 때 할당된 블록의 행 데이터 영역의 크기에서 10% 공간을
INSERT문 실행시 사용하지 말고 블록 내에 데이타 변경(UPDATE)시만 사용하기 위해
미리 확보.
- 행들의 변경이 발생하면 같은 블록내에 변경된 정보를 저장할 수 있기 때문에
한번의 블록 읽기를 통해 원하는 행 참조 가능.
- PTCFREE크기 산정시 평균행의 크기와 초기 행의 크기는 DBA_TABLES 자료사전에서
해당 테이블 정보 참조.
ANALYZE TABLE [table_name] COMPUTE STATISTICS
PCTUSED
PCTUSED
PCTUSED ?
오라클 서버가 테이블의 각 데이터 블록에 대해 유지하려는 사용 공간의 최소 백분율로써
데이터 세그먼트에 대해 지정합니다
ex) PCTUSED 40
-->테이블의 데이터 세그먼트에 사용된 데이터 블록의 사용영역이 39%보다 적어지지 않으면
새로운 행을 삽입할 수 없음을 의미 합니다.
◈ PCTUSED의 기본값은 40% 입니다.
◈ PCTUSED값이 적을 경우
- 블록이 재사용되는 일이 적어질 수 있으므로 처리 비용이 감소 합니다.
- 데이터베이스에서 사용되지 않은 공간이 증가 합니다.
◈ PCTUSED값이 클 경우
- 블록이 재사용되는 일이 많아질 수 있으므로 처리 비용이 증가 합니다.
- 공간 사용도를 향상 시킵니다.
◈ PCTFREE와 PCTUSED값을 선택하는 예
① UPDATE시 ROW의 크기가 증가 될 때
- PCTFREE = 20
- PCTUSED = 40
② Insert, Delete가 자주 발생하지만 Update시 ROW의 크기가 증가 되지 않을 때
- PCTFREE = 5
- PCTUSED = 60
③ 테이블이 매우 크지만 대부분 Read Only Transaction 일 때
- PCTFREE = 5
- PCTUSED = 90
반응형
'학습자료(~2017) > 오라클' 카테고리의 다른 글
11. 오라클 - VIEW 관리 및 활용 (0) | 2011.03.15 |
---|---|
10. 오라클 - 제약조건 (0) | 2011.03.15 |
8. 오라클 - 테이블 스페이스 관리 (0) | 2011.03.14 |
7. 오라클 - 테이블 스페이스 (0) | 2011.03.11 |
6. 오라클 - Sub Query (0) | 2011.03.11 |