- Index Prganized Tables(IOT)
- 검색속도를 높이기 위해 만들었다
- 일반 Table space
- Table과 Index가 각각 구성되어있고 Index는 Table의 종속 개체
- Table Data를 Primar Key에 대한 B* Tree Index에 적재하는 구조를 갖는다
- IOT에서는 Index안에 Table에 포함되어 있다. 꼭 PK를 구성해야한다.
- 고가용성의 OLTP 환경에서 주로 사용한다
- 장점
- Index와 Table이 한꺼번에 저장되기 때문에 저장소를 절약할수있다.
- Primary Key를 2번 저장할 필요가 없다 -> 공간절약이 가능하다
- 보조 Index와, 논리적 Row ID(Urowid)를 사용한다 -> Index가 비대해지는 현상이 발생하지 않는다
- 제한성
- DEFERRABLE(해당 Primary Key에 대한 검증을 Commit후에한다) Primary Key를 가지면 안된다.
- Clustering을 할수없다
- Partitioning을 할수없다
- ROWID, Long Column을 포함할수 없다
- ORGANIZTION INDEX : IOT 선언
- PCTTHRESHOLD : 임계율 설정 1개 Block의 Low Size가 20%를 넘게되면 저장하지 않고 OverFlow로 간주한다
- INCLUDING : IOT의 단일 Row size가 DB_BLOCK_SIZE보다 큰 경우 INCLUDING column 이후의 row data는 Overflow Table에 저장이 된다.
- OVERFLOW TABLESPACE : OverFlow가 발생한 Block을 저장
- Cluster
- 공유 컬럼을 가지고 있는 테이블끼리 엮기기 위해서는 Cluster Key가 필요하다
- 장점
- Disk I/O를 줄일수있다(Clustering Join)
- 한번만 저장하기 때문에, 저장공간을 줄일수 있다.
- 단점
- DML이 Cluster Table에 들어가면 성능이 저하된다
- Cluster Type
- Index Cluster
- 장점
- 같은 Cluster Key를 가진 여러 데이터 행에 빠르게 접근할 수 있다
- 인덱스 클러스터의 사용은 점진적으로는 인덱스 스페이스 사용을 줄일수 있다
- Select작업은 더 빨라진다
- 단점
- 테이블 로딩 속도는 매우 느려진다
- Index없이 Clustered Table Load가 안된다
- Insert 작업이 매우 느리다
- 클러스터 데이터블락은 SGA내에 상주할 수 없으므로 엑세스가 발생할 때 마다 여러 번 읽혀 져야 한다.
- Hash Cluster
- Sorted Hash Cluster
- Schema Management(기본적인 관리업무)
- Table을 새롭게 만들때 대략적인 Size를 예측한다
- Column Size
- Column Type
- PCTFREE
- Table의 증가추세를 모니터링해서 공간부족문제를 미리 예방한다
- EM의 증가추세 보고서
- AWR이 분석한 Shapshot 데이터 분석의 결과로 그래프가 만들어진다
- Local Management에서만 지원된다
- 증가기록 : 과거의 공간 사용량 Data를 차트로 만든다
- 증가예측 : 기록적보와 해당하는Data를 보고 향후 공간 증가를 예측한다
- Optimizer 통계를 이용해서 관리한다
- Reoganizing SchemaObject [Online]
- 물리적,논리적 공간의 재설정
- 언제 해야하나?
- 저장 공간 관리
- 공간성능 향상
- 새로운 App 추가시
- 주요 용도
- Fragmented index (조각난 Index) 재구성
- Fragmented Table (조각난 Table) 재구성
- Object가 다른 TBS로 이동했을 경우
- 수동 Online 작업 Query
- DBMS_REDEFINITION.CAN_REDEF_TABLE
- CREATE TABLE...
- DBMS_REDEFINITION.START_REDEF_TABLE
- DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS and
- DBMS_REDEFINITION.CONS_ORIG_PARAMS
- SELECT object_name, base_table_name, ddl_txt
FROM DBA_REDEFINITION ERRORS;
- DBMS_REDEFINITION.SYNC_INTERIM_TABLE
- DBMS_REDEFINITION.FINISH_REDEF_TABLE
- DROP TABLE... PURGE
------------------------------------------->
- Managing Storage
- Space Management
- Oracle Managed File(OMF)
- Parameter의 설정값의 경로(TBS,C/F, Redo자동 경로) -> 객체 관점 관리
- Free-Space Management -> Bitmaps(BMB)
- Automatic Data File Extention (자동확장기법)
- Proactive Space Management (사전 공간관리) -> Threshold와, Server-Generated Alert
- Space Reclamation (공간회수) -> 재구성을 해서 다시 사용할수 있는 공간으로 생성
- Capacity Planning (용량계획)
DIctionary 방식에서는 경합이 많이 발생했고, 단편화(병합)가 많이 발생했다.
- Free Space Management
- 자동으로하겠다! -> Bitmaps
- Local Managed 방식에서만 사용가능하다
- 장점
- 공간 활용률이 굉장히 좋아진다
- BMB 다중 Process에 의해서 Free Space의 Search에 의해서 공간관리
- Type Of Segment
- Data Segment : Table
- Index Segment : Index
- Temporary Segmemt : Disk Sort를 요구하는 SQL문의 시작과 동시에 생성
- Allocate Extents
- UNIFORM : Extent가 동일한 사이즈로 할당
- AUTOALLOCATE : 자동으로 크기를 결정
- 할당 해제 권고자를 이용해서 필요없는 Extent를 자동 관리
- Block Space Management
- PCTFREE : Update를 위해 남겨놓은 공간
- PCTUSED : Insert를 할수 있는 공간
- Row Chaning and Migration
- Chain & Migration -> I/O를 2중 발생 시킨다
- Segment Advisor를 이용해서 찾아낼수 있다
- Proactive Tablespace Monitoring
- 설정해놓은 임계치를 초과하면 Alert 을 띄운다. Critical과 Warning이 있다
- Threshold and Resolving Space Problems
- 공간부족문제 해결
- Data File 추가를 하거나 재구성
- AutoExtent On으로 추가해주면 좋다
- Shrinking Object를 이용
- UNDO_Retention을 줄여준다
- Temporary Tablespace에 Long Running Query를 Check!
- Monitoring Tablespace Space Usage
- MMON이 10분마다 계속해서 Tablespace의 사용량을 Check한다
- Read-Only나 Offline 되어 있는 Table Space는 ALert을 설정할 필요가 없다
- Undo Tablespace는 Expired, InExpired, Active 상태의 Data들을 잘 구분해서 대처한다
- Shrinking Segments
- Update나 Delete에 의해서 Segment 중간중간에 빈공간이 남을수 있다.
- ALTER TABLE employee SHRINK SPACE COMPACT -> Segment를 최적화 시켜준다
- 장점
- 공간활용도와 성능이 좋아진다
- Index에 대한 부분도 효율적으로 관리할수있다
- Trigger에는 할수 없다
- Migrated Rows(행이전) Data를 줄일수있다.
- IOT에서 보조 인덱스에도 권장한다
- Segment Advisor : 해당 Segment의 공간축소 여부를 결정 할수있는 지표를 보여준다
- SQL을 이용해서 Shrink를 할경우 설정되어 있어야 하는 것
- ALTER TABLE ___ ENABLE ROW MOVEMENT (행이동 활성화)
- ALTER TABLE ___ SHRINK SPACE CASCADE (행이동이 비활성화 되어있다면 활성화 시키고 Shrink)
- ALTER TABLE ___ MODIFY LOB(resume) (SHRINK SPACE) (대형 객체에 대해서만 Shrink)
- ALTER TABLE ___ OVERFLOW SHRINK SPACE (OverFlow에 포함된 객체만 Shrink)
- Managing Resumable Space Allocation
- 테이블 스페이스에 공간이 부족할때 작업을 잠시 일시정지를 시켜준다.
- 발생시점
- Out of Space (공간부족)
- 최대 Extent가 꽉찼을때
- Space Quota Exceeded
- 사용방법
- resunable권한을 줘야 설정할수 있다
- ALTER SESSION ENABLE RESUMABLE -> 활성화
- INSERT INTO ____ SELECT * FROM sh.sales; -> 대형 Data 입력
- ALTER SESSION DISABLE RESUMABLE -> 다시 바활성화
- ALTER SESSION ENABLE RESUMABLE TIMEOUT 3600 -> 대기시간 1시간, 1시간이 지나면 끝내버린다
카페 게시글
오라클 강좌[인서]
Managing Schema Object & Managing Storage
인서
추천 0
조회 146
08.04.17 21:35
댓글 0
다음검색