|
추천싸이트: 즐겨찾기 해놓으면 도움이 되는 사이트
추천 까페 : 네이버 네트워크 무료 강좌 추천 까페
카페운영자에게 메신져로 물어보기
네이트온 : assaman@lycos.co.kr
MSN : superljk@hotmail.com
무료상담 : 080-384-3233
탄약정보체계(운영자용) Oracle7 Administration
8장
-Storage Allocation
관리-
Storage Allocation 관리8-1
탄약정보체계(운영자용) Oracle7 Administration
8.1 배워야할것
이번장은Database Storage 를어떻게효과적으로관리하고제어할
수있는가에대해공부한다.
이번장을마치면다음같은일을할수있다.
-Dat abase Obj ect s 에ext ent s 들을할당할수있다.
-Database storage allocation parameters 들을설명할수있다.
-Space usage( 저장공간의용도)를제어할수있다.
-Space utilization parameters 를사용할수있다.
-Database storage information 을볼수있다.
Storage Allocation 관리8-2
탄약정보체계(운영자용) Oracle7 Administration
8.2 개관
오라클서버는그dat abase 의모든dat a 들에대해dat abase space 를할당한다.
(Obj ect (객체) 의정의)
객체정의Da t a b a s e
Ta b l e s p a c e s 들안에저장되는s h a r e d da t a ( 공유되는데이터)
의l og i c a l c o l l e c t i on ( 논리적집합)이다.
Fi l e
단일t ab l e s p a c e 에속하는(를구성하는) phy s i c a l da t a f i l e
(물리적데이터파일)
Ta b l e s p a c e
물리적으로그룹화된da t a 를저장하는논리적저장소(r ep o s i t or a y )
Se gme n t
어떤t a b l e s p a c e 에속한특정구조(Sp e c i f i c s t r u c t u r e ) 에대한모든데이터를포함하는하나이상의e x t e n t s 들의모임이다.
Ex t e n t
어떤da t a b a s e 의연속적인da t a b l oc k s 들의모임(A s e t o f
c on t i gu ou s da t a b l oc k s ) 이다.(
Bl oc k
존재하는da t a f i l e 로부터할당되어지는Mu l t i p l e phy s i c a l
f i l e b l ock s ( 여러물리적파일블록들) 이다.
(Storage Parameters; 저장매개변수)
I NI TI AL
PCTI NCREASE
NEXT
OPTI MAL
MAXEXTENTS
FREELI STS
MI NEXTENTS
(Block Space Utilization Parameters)
PCTFREE
PCTUSED
I NI TRANS
MAXTRANS
Storage Allocation 관리8-3
탄약정보체계(운영자용) Oracle7 Administration
8.3 Extents -Ⅰ
Ext ent 는연속성있는data blocks 들의모임이다. Dat abase
obj ect 가성장할때, space 는그것에할당된다.
(Ex t ent 가할당될때)
-Segment 가만들어질때(I NI TI AL EXTENT)
-Segment 가성장할때(NEXT EXTENT)
-Ext ent s 들을할당하기위해t able 또는clust er 를수정(alt er) 할때
(Ex t ent 의할당이회수될때)
-Segment 또는clust er 가삭제(dr op) 될때-Segment 또는clust er 가t runcat e 될때
▣ 참고: Truncat e
SQL 명령인TRUNCATE 을사용한다.
테이블또는클러스터에서모든r ows 를제거하고STORAGE 파라미터들
을그테이블과클러스터가만들어졌을때값으로재설정한다.
-Rollback segments 들의경우에만해당되며, Segment 가opt imal
si ze( 최적크기)보다커서free extents 들을가져야할때
-Tabl e 또는clust er
(Ex t ent 의특성들)
-Dat abase 안에각s egment 는어떤종류이더라도생성될때그것의dat a 를저장하는ext ent 를최소한하나가지고있다.(주의:
rol lback segment 는언제나최소두개의ext ent s 를가진다.)
-첫번째ext ent 를ini tial ext ent 라고한다.
-차후에만들어지는확장영역(Subsequent ext ent s) 들을i ncr ement al
ext ent s 라고한다.
-객체(Obj ect ) 의현재할당된ext ent s 들의모두가이미채워졌을때, 그객체는새로운ext ent 를하나할당한다.; Segment 안에존재하는space 가완전히다사용되면, 오라클은그s egment 에새로운ext ent 를할당한다.
Storage Allocation 관리8-4
탄약정보체계(운영자용) Oracle7 Administration
8.3 Extents -Ⅱ
-Ext ent s 들의할당을자주회수(de-al locat ion) 하는것은조각난테이블스페이스(fragmented tablespace) 를야기한다.
-I NI TI AL EXTENT 는Dat abase 안에이미예약된저장공간의덩어리(a chunk of pr e-r eser ved space) 다. I NI TI AL EXTENT 가채워지면, NEXT EXTENT 가할당된다. 예를들어Tabl e 하나를만들면그것의dat a segment 는설정된개수의dat ablocks 들로된initial extent 를가진다. 아직아무런r ows 도입력(insert ) 되지않았으나, initial extent 에해당되는Oracle data blocks
들은그t able 의r ows 들에대해예약된것이다.
-The Oracle Server considers blocks with consecutive
block IDs to be contiguous, although the blocks are not
necessarily contiguous on disk, since Oracle uses
contiguous best try when creating files on disk.; Disk
상에fi les 들을만들때오라클은가능한한연속적으로만들려고하기때문에, 오라클이실제로bl ocks 들이di sk 상에서연속적일필요는없지만오라클서버는연속적인block IDs(Consecutive
block IDs) 을사용해서bl ocks 들이연속적인것처럼다룬다.
-[Segment header block] 유지관리를잘하기위해서, dat abase
안에각각의s egment 는자신의특성과자신이소유하는ext ent 들의목록(directory (list)) 에대한정보를가진segment header
bl ock 을하나씩가지고있다.
Storage Allocation 관리8-5
탄약정보체계(운영자용) Oracle7 Administration
8.3.1 참고: Ext ent s 와Paral l el Query Opt i on -Ⅰ
(병렬질의옵션과e x t e n t s )
-병렬질의옵션(p a r a l l e l qu e r y op t i on ) 을사용해서i n d e x e s 들과n on -c l u s t e r e d t ab l e s 들을병렬로(i n p a r a l l e l ) 만들때,
각각의질의서버(query server) 는새ext ent 하나를할당하고
거기에t able 또는i ndex 의dat a 를채운다. 만일우리가병렬성의
차원을3으로하여(with a degree of parallelism of three)
i ndex 를만들경우, 최초에최소한3개의ext ent s 가그i ndex 에
존재하게된다.
-직렬조작(Serial operations) 들은각객체가최소하나의ext ent 를갖는것을요구한다. 병렬생성들(Parallel creations) 의경우, 클러스트화되지않은t abl es 들또는indexes(non -clustered tables or
i ndexes ) 들이그객체를만든질의서버(query servers) 들의수와최소한같은수의ext ent s 를갖는것을요구한다.
(Free space 의문제점: "Pocke t s ")
-[발생원인] 병렬질의옵션을사용해서t abl e 또는i ndex 를만들때, 빈저장공간의포켓들("pockets" of free space) 을만들수있다. 이현상은t ablespace 안에dat afi les 들의수보다많은질의서버들을우리가설정했을때일어난다.
-[문제점] 오라클은다른fr ee space 을이용해서이들fr ee space 를증가(coal esce) 시킬수없으므로, 결과적으로이저장공간(sp a ce ) 은그테이블에대한차후입력(subsequent inserts) 에만가용하게된다.
-[예: 그림] 예를들어CREATE TABLE ... AS <subquery> 문에대해서병렬성의차원을3으로설정했으나, Tabl espace 안에dat afi l e
이오직하나존재할경우다음그림같은상황이일어난다.
(계속)
Storage Allocation 관리8-6
탄약정보체계(운영자용) Oracle7 Administration
8.3.1 참고: Extents 와Paral l el Query Opt i on -Ⅱ
(계속)
각dat afi le 안에서t able 또는i ndex 의마지막ext ent 의fr ee space 만을오라클이확대(coal esce) 시킬수있다.
dat afi le 의내부테이블확장영역들(internal table extents)
안에모든fr ee space 의
pocket s" 」들은다른fr ee space 를가지고확장도되지않고, ext ent s 로서할당되지도않는다.
-[해결책] 이같은병렬질의옵션에의한free space 문제를해결하려면, 우리가클러스터화되지않은테이블또는인덱스(non -clust er ed
table or index) 를위치시키는중인Tabl espace 의dat af i l es 들수와같거나적게병렬성차원을설정해야한다. 오라클은질의서버들을dat afi le 에순환적방식(round -robin fashion) 으로할당하기때문에Dat afi les 보다적은수의질의서버들을설정하게되면그Tabl espace 안의모든t ables 들이차후에확장영역배당(subsequent extent allocation) 을할때fr ee space 모두를사용할수있게된다.
Storage Allocation 관리8-7
탄약정보체계(운영자용) Oracle7 Administration
8.3.2 참고: Ext ent s 들이Segment s 에어떻게할당되는가-Ⅰ
오라클은주어진s egment 로의ext ent s 들의할당을제어한다. 새ext ent 를s egment 에할당하는절차는다음과같다.
(할당절차)
-[단계1] 오라클은(해당s e gment 를가진t abl espace 안에서) free
space 전체를검색하여incremental extent 의크기와같거나혹은그보다큰첫번째
(fr ee 하고cont i gous 한) data blocks 들의모임을찾는다. 오라클은새ext ent 에사용할fr ee space 를다음알고리즘을사용해찾는다.
1.1 오라클은새ext ent 의크기와일치하는연속적인dat a bl ocks 들의모임을찾는다, 그리고internal fragmentation 을줄이기위해bl ock 하나를더한다. 예를들어새ext ent 가19 개의dat a bl ocks 이필요하다면, 오라클은정확히20 개의연속된dat a bl ocks 들을찾게된다. 그렇지만만일새ext ent 가5 이하의bl ocks 들이필요할경우추가적인extra block 을더하지않는다.
1.2 정확한일치되는것을찾지못할경우, 오라클은필요한크기보다크거나같은연속적인dat a bl ocks 들의모임(set ) 을검색한다. 만일오라클이필요한크기보다최소5 bl ocks 이상큰연속bl ocks 들(cont i guous
bl ocks) 의모임을발견하게되면, 오라클은그모임을여러개의ext ent s
들로분리하고이중하나는원하는크기와일치하게만든다.; 만일오라클이필요한크기보다큰모임을발견했지만그것이5 bl ocks 이하로클때, 오라클은이모든연속bl ocks 을할당한다.
예. 만일오라클이정확히20 개의연속dat a bl ocks 들을모임을발견하지못했을때, 오라클은20 보다큰것들을찾기시작한다. 만일오라클이찾은첫번째모임(set ) 이25 개이상의bl ocks 들을가질경우, 오라클은20 개을분리하여새ext ent 에할당한다. 21 와24 사이의연속블록들의모임일경우, 오라클은이전체를새ext ent 에할당한다.
(계속)
Storage Allocation 관리8-8
탄약정보체계(운영자용) Oracle7 Administration
8.3.2 참고: Ext ent s 들이Segment s 에어떻게할당되는가-Ⅱ
(계속)
1.3 만일dat a bl ocks 들의큰연속모임(set ) 을찾지못할경우, 오라클은해당t abl espace 안에서가까운빈dat a bl ocks 들을키워서(coal esce)
원하는크기의연속dat a bl ocks 들의모임(set ) 을만든다. (SMON
background process 가주기적으로가까운빈저장공간(adj acent f r ee
space) 을키운다(coalesce)). Tablespace 의dat a bl ocks 들을키운후에는, 1.1 과1.2 단계를다시밟는다. 두번째검색후에도ext ent 가할당되지않는다면, 오라클은오류를내게된다.
-[단계2] 오라클이필요한fr ee space 를t ablespace 안에서찾았다면, 오라클은Incremental extent 의크기에상응하는fr ee
space 의일부를할당한다. 만일오라클이필요한크기보다큰fr ee
space 를찾았다면, 필요없는나머지부분은fr ee space 로남긴다.
(5 개의연속블록보다작을수없다)
- [단계3] 새ext ent 가이미할당되었다는것과할당된space 가더이상fr ee 하지않다라는사실을나타내기위해segment header
와data dictionary 를오라클이갱신한다.
일반적으로오라클은새로할당된ext ent 의bl ocks 들을, 그ext ent
가처음사용될때, 청소(cl ear ) 한다. 매우드문경우로, DBA 가fr ee
list groups 를사용하면서ALTER TABLE 또는ALTER CLUSTER 명령을ALLOCATE EXTENT 옵션과함께사용하는경우, 오라클은ext ent 를할당할때그ext ent 의bl ocks 들을청소(cl ear ) 한다.
Storage Allocation 관리8-9
탄약정보체계(운영자용) Oracle7 Administration
8.3.3 참고: 언제Ext ent s 들의할당이회수되는가-Ⅰ
일반적으로, 우리가어떤s egment 에자신들의dat a 를저장하는객체를삭제(dr op) 할때까지(by. DROP TABLE 또는DROP CLUSTER 문을사용) 그Se gmen t 의ext ent s 들을t ablespace 로돌려보낼수없다.
예외는다음과같다.
-테이블또는clust er 의소유자, 또는DEDELETE ANY 권한을가진
사용자, 는Tabl e 또는clust er 를TRUNCATE...DROP STORAGE 문
을사용해서t r u n c a t e 할수있다.
-주기적으로, 오라클은한r o l l b a c k s e gme n t 에서하나이상의e x t e n t s 들의할당을회수할수있다.
-DBA 는다음SQL s yn t a x 를사용해서안쓰는e x t e n t s 들의할당을회수할수있다.
ALTER TABLE tabl e_ name DEALLOCATE UNUSED
(청소; cl ear) Ext ent s 들이자유롭게(fr ee) 되면, 오라클은dat a
dict ionary 를갱신하여가용한space 로분류된ext ent s 들이반영되게만든다. 자유롭게된확장영역들(freed extents) 의bl ocks 들이포함하는모든dat a 는접근이불가능하다. 이후에이bl ocks 들이다른ext ent s 들에의해사용될때, 오라클이이bl ocks 들을청소(cl ear ) 한다.
(Non-Clustered Tables, Snapshots, Snapshot Logs 의경우)
-Non -clustered table (snapshot 또는snapshot l og 을위한underlying table 을포함) 이존재할때까지또는우리가t able 을t runcat e 할때까지, 자기의dat a segment 에할당된모든data block 들은Tabl e 에할당된채로남아있다.; 오라클은충분한여유가있는bl ock 에새r ows 들을입력(insert ) 한다. 한Tabl e 의모든r ows 들을삭제(delet e) 하더라도, 오라클은그Tabl espace 안의다른obj ect 들이그data blocks 들을사용할수있게재선언(r ecl aim) 하지않는다.
Storage Allocation 관리8-10
탄약정보체계(운영자용) Oracle7 Administration
8.3.3 참고: 언제Extent s 들의할당이회수되는가-Ⅱ
-Non -clustered table 를삭제(dr op) 할때, 오라클은그테이블의dat a segment s 들과index segment s 들의모든ext ent s 들을그들이저장되있던t ablespace 에대해재선언(r ecl aim) 하여그Tabl espace
안의다른객체들이이ext ent s 들을사용할수있게만든다. 이후에다른segment s 들이큰ext ent s 들을요구할때, 오라클은연속성의재선언된확장영역들(contiguous reclaimed extents) 을확인하고이들을합하여필요한크기의ext ent s 들을만든다.
(Clustered Tables, Snapshots 의경우)
Clustered tables 와Clustered snapshots 들은해당clust er 을위해만들어진dat a segment 에자신들의정보를저장한다. 그러므로, 우리가Clustered table 을삭제(dr op) 하여도그dat a segment 는해당Clust er 의다른t abl es 들을위해그대로남게되고어떤ext ent s 들도할당이회수(deal l ocat e) 되지않는다. Ext ent s 들을비우기(fr ee) 위해우리는clust er s 들(hash clusters 는예외)을t runcat e 할수있다.
(Index es 의경우)
Index segment 에할당된모든ext ent s 들은그들의i ndex 가존재하는동안은할당된채로남아있는다. I ndex 를삭제(dr op) 한다던지또는관련된t able 또는clust er 를삭제(dr op) 할때, 오라클은같은t ablespace 안에서다르게사용할수있도록ext ent s 들을재선언(r ecl aim) 한다.
(Rollback Segments 의경우)
오라클은rol lback segment s 들이자신들의opt imal si ze 보다크게잘랐는지여부를주기적으로점검한다. 만일더크게자랐으면(다른말로너무많은ext ent s 들을가지면), 오라클을자동으로하나이상의rol lback segment 에서하나이상의ext ent s 들의할당을회수한다.
(Temporary Segments 의경우)
오라클이Temporary segment 가필요한문(st at ement ) 의실행을완료했을때, 자동으로그Temporary segment 를삭제(dr op) 하여그s egment 에할당되었던ext ent s 들을해당t ablespace 에돌려준다.
Storage Allocation 관리8-11
탄약정보체계(운영자용) Oracle7 Administration
8.4 Ext ent 의할당을제어하자
Segment s 들에대한ext ent 의할당을제어할수있다. Obj ect s 들에대해개별적으로St or age par amet er s 들을설정하거나또는Tabl espace 에대해기본값들을설정한다.
(Sorage Prameters)
I NI TI AL
PCTI NCREASE
NEXT
OPTI MAL
MAXEXTENTS
FREELI STS
MI NEXTENTS
FREELI ST GROUPS
(Storage Prameters 가적용되는것들)
Tabl es
Rol lback segment s
Clust ers
Tabl espaces (기본설정만)
I ndexes
(우선순위법칙; Rul es of Pr ecedence)
-객체수준에서의St or age par amet er 설정는그들의Tabl espace
수준에서의옵션에의해설정값에우선한다.
-객체수준에서의도적으로St or age par amet er 를설정하지않아도,
Tabl espace 수준에서기본값이설정된다.
-Tablespace 수준에서의도적으로St or age par amet er s 를설정하지않아도, 오라클서버의system defaults 들를적용한다.
-만일St or age par amet er s 가수정되면, 새로운옵션들은아직할
당되지않은ext ent s 들에게적용된다.
-OPTI MAL 명령은Rol lback segment s 에대해서만설정된다.
-FREELI STS 와FREELI ST GROUPS 파라미터들은t ablespace 기본
값들(default s) 에대해서설정될수없다.
Storage Allocation 관리8-12
탄약정보체계(운영자용) Oracle7 Administration
8.5 Storage Parameters -Ⅰ
I NI TI AL
객체(Ob j e c t , 또는s e gme n t ) 에할당되는첫e x t e n t 의크기를b y t e s 단위로설정한다.
기본값은5 da t a b l oc k s 이다. 최소값은2 da t a b l oc k s 이고최대값은OS 에의존한다.
NEXT
객체(Ob j e c t 또는s e gme n t ) 에할당되는다음e x t e n t 의크기를b y t e s 단위로설정한다.
기본값은5 da t a b l oc k s 이다. 최소값은1 da t a b l oc k s 이고최대값은OS 에의존한다.
MI NEXTENTS
객체(또는Se gme n t ) 가생성될때할당되어지는e x t e n t s 들의총개수를설정한다.
기본값과최소값이모두1이다. 단r o l l b a c k s e gme n t s 들의경우이값이2이다.
만일이값이1 보다큰경우, 오라클은은이후의e n t e x t s 들의크기를I NI TI AL, NEXT, PCTI NCREASE 값을기준으로계산하게된다.
MAXEXTENTS
맨처음것을포함해서오라클서버가그객체에할당할수있는e x t e n t s 들의총개수를설정한다.
최소값은1
기본값과최대값은da t a b l oc k 크기에의존한다.
UNLI MI TED
Ex t en t s 들이필요에따라자동할당된다. r ol l b a c k s e gmen t s
들또는d i c t i on a r y t a b l e s 들의경우이옵션을사용하면안된다.
PCTI NCREASE
세번째e x t e n t 가만들어질때부터적용된다. 새로생성되는e x t e n t 의크기를가장최근만들어진e x t e n t 의크기와비교해퍼센트로설정한다.
기본값은50 이다. 이말은차후의e x t e n t 가이전e x t e n t 의크기보다50% 크다는것이다.
최소값은0 이다. 이말은차후의e x t e n t 가이전e x t e n t 와크기가동일하다는것이다.
Ro l l b a c k s e gme n t s 들에대해서쓸수없다.
Storage Allocation 관리8-13
탄약정보체계(운영자용) Oracle7 Administration
8.5 Storage Parameters -Ⅱ
FREELI ST
GROUPS
Ta b l e s p a c e 가아닌객체들을위한것이다.
Ta b l e , c l u s t e r 또는i n d e x 를위한f r e e l i s t s 들의그룹개수를정한다.
오라클이Pa r a l l e l Se r v e r 옵션을사용할때만이파라미터를사용한다.; Pa r a l l e l Se r v e r 의각i n s t a n c e 들이개별적으로사용할f r e e l i s t s 들의총개수를설정한다.
CREATE TABLE, CREATE CLUSTER 문들에만이파라미터를사용할수있다.
FREELI ST
Ta b l e s p a c e 가아닌객체들을위한것이다.
Ta b l e , c l u s t e r 또는i n d e x 를위한f r e e l i s t gr oup s 들각각이가지는f r e e l i s t s 의개수를정한다.
Ta b l e 하나에대해서, 이들에대한입력(i n s e r t s ) 에사용되는f r e e b l oc k s 들의목록(l i s t s o f f r e e b l oc k s ) 의개수기본값과최소값은1이다. 즉각f r e e l i s t gr oup s 들은오직하나의f r e e l i s t 를가진다.
CREATE TABLE, CREATE CLUSTER, CREATE I NDEX 문들에만FREELI STS 파라미터를사용할수있다.
OPTI MAL
(하나당)Ro l l b a c k s e gme n t 를위한Op t i ma l s i z e ( 최적크기)를설정한다.
다른종류의객체들에는사용할수없다.
오라클7은활동중인트랜잭션(a c t i v e t r a n s a c t i on ) 이더이상필요로하지않는da t a 들을가진e x t e n t s 들의할당을동적으로회수(d e a l l oc a t i n g ) 하여Ro l l b a c k s e gme n t 를위한이크기(op t i ma l s i z e ) 를계속유지한다.
오라클7은Ro l l b a c k s e gme n t 의전체크기가OTI MAL 값아래로떨어지지않는한도에서가능한한많은수의e x t e n t s 들의할당을회수한다.
이파라미터의값은MI NEXTENTS, I NI TI AL, NEXT, PCTI NCREASE
파라미터에의해설정된Ro l l b a c k s e gme n t 에초기에할당된s p a c e 보다작으면안된다.
NULL
Ro l l b a c k s e gme n t 에대해서op t i ma l s i z e ( 최적크기)를정하지않는다. 따라서오라클은Ro l l b a c k s e gme n t 의e x t e n t s 들의할당을결코회수(d e a l l oc a t i n g ) 하지않는다.
기본값(De f a u l t b eh a v i or ) 이다.
Storage Allocation 관리8-14
탄약정보체계(운영자용) Oracle7 Administration
8.6 Storage Parameters 의기본값재설정-Ⅰ
Tab l e s p a c e 수준에서설정된St or a ge p a r ame t e r s 들의기본값을재설정하자(NEX T를바꿀때)
-next incremental extent 는새NEXT 값이적용된다. 그러고난이후의ext ent s 들은정상적으로PCTI NCREASE 이적용되어성장한다.
(PCTI NCREASE를바꿀때)
-NEXT 의값은다음공식에의해계산된다.
NEXT = NEXT × (1 + 새로바뀐PCTI NCREASE / 100)
※ next Oracle block 으로올림된다.(be r ounded up)
(NEX T와PCTI NCREASE를모두바꿀때)
-next ext ent 는그즉시새NEXT 값이할당되고, 그시점이후의
NEXT 는새PCTI NCRESE 이적용되어계산된다.
바뀐기본값들은그Tabl espace 안에그시점이후에생성될새객체(object s) 들에만적용되면, 이전에만들어진객체에는영향을주지않는다.
I NI TI AL 과MI NEXTENTS 는바꿀수없다.
(Storage parameters 설정時유의점)
-Contiguous free space( 연속적인빈저장공간)의사용을최대화시킨다. 그리고-[Fr agement at i on 방지] Tablespace 안에fr ee space 가조각나는것을(becoming fragmented) 방지해야한다.
Storage Allocation 관리8-15
탄약정보체계(운영자용) Oracle7 Administration
8.6 Storage Parameters 의기본값재설정-Ⅱ
(Fragmentati on 을방지하자)
-[free space Fragementation 의영향] 작은free extents 들여러개를하나의큰ext ent 로성장시키는처리작업으로인하여전체적인수행능(per formance) 이떨어진다.
-[Fr agement at i on 을줄이는법]
Se gmen t 를INITIAL ext ent 로제한(制限) 한다.
incremental extents 들의크기를키우는PCTI NCREASE 값을적절하게설정한다.
(dba_ free_ space)
SQL> select * from dba _ free _ space
where tablespace _ name = 'AIS_ DB'
order by block_ id;
TABLESPACE_ NAME FI LE_ I D BLOCK_ I D BYTES BLOCKS
AI S_ DB 6 15777 122880 60
AI S_ DB 6 21822 51200 25
AI S_ DB 6 356857 1366310912 667144
※ 1 block = 2048 bytes
Storage Allocation 관리8-16
탄약정보체계(운영자용) Oracle7 Administration
8.7 Database Blocks
(Data Blocks 이란?) 하나의오라클서버블록(an Oracle Server
data block) 은dat abase 에의해사용되는가장작은저장단위이다.
(Database Blocks 들의특징)
-Database blocks 들은di sk 상의하나또는둘이상의물리적블
록(Ph y s i c a l b l oc k s ) 들과대응한다.
-Dat abas e 가생성될때i ni t i al i zat i on par amet er DB_ BLOCK_ SI ZE
에의해결정되며, 모든dat a f i l es 에대해동일한다.
-마찬가지로DB_ BLOCK_ SI ZE 는SGA 안에각각의d a t ab a s e
bu f f e r 크기를결정한다.
-Database blocks 들을logical blocks 또는Oracle Server
bl ocks 라고한다.
-일단Dat abase 가생성된후에는DB_ BLOCK_ SI ZE 는결코수정되지않는다.
-Oracle Server database block 의크기는일반적으로2KB 또는4KB byt es 이다. 기본값은운영체계에의존한다.
-어떤플랫폼(plat form) 의경우, Bl ock 의크기가매우클수있다(예, 32KB). 이를Big Oracle Blocks 이라고한다.
-모든I/O(Input and Output) 은Block/Multiple block level
(블록하나/ 블록여러개-차원)에서수행된다.; Dat abase 에의해사용되는I/O 의가장작은단위이다. 오라클서버는row level( 행차원)에서잠금(Locki ng) 을수행한다.
Storage Allocation 관리8-17
탄약정보체계(운영자용) Oracle7 Administration
8.8 Database Block 의구성-Ⅰ
(Database Block 의형태)
Oracle Server block 의형태(format ) 는Oracle Server block 이t able 의dat a 를포함하더지아니면i ndex 의dat a, 클러스터화된data(clustered data) 를포함하는지에상관없이비슷하다.
(Database Block 의구성)
Bl o c k 의부분설명(Common
a n d v a r i a b l e )
He a d e r
블록주소(Bl oc k a dd r e s s ), 시그먼트형태(Se gme n t t yp e /
예. da t a , i n d e x 또는r o l l b a c k ) 같은일반적인블록정보를가진다.
일부b l oc k ov e r h e a d 는그크기가고정되있는반면에b l oc k
ov e r h e a d 의총합은가변적인다. 평균적으로고정된부분과가변적인부분을합한크기는84 에서107 b y t e s 사이에있다.
T a b l e
d i r e c t or y
클러스트화된테이블(Cl u s t e r e d t ab l e s ) 들의경우에, 이블록안의행들을가지는테이블들(t ab l e s ) 에대한정보를가진다.
Row da t a
Ta b l e da t a 또는I n d e x da t a 를저장한다.
행(r ows ) 들은Bl oc k s 들사이에걸칠(s p a n ) 수있다.
; "Row Ch a i n i n g a c r os s Da t a Bl oc k s " 이라고함
(계속)
Storage Allocation 관리8-18
탄약정보체계(운영자용) Oracle7 Administration
8.8 Database Block 의구성-Ⅱ
(계속)
블록안에actual rows 들에관한행정보(row information) 을가진다. 이정보는Row dat a 영역안에각각의행조각(r ow
pi ece) 들에대한주소를포함한다.; 행하나당over head 로2
byt es 가필요하다.
한블록의header 의row directory 안에일단Sp a c e 가할Row directory
당되면, 그r ow 가삭제(del ect e) 되지않는한그Sp a c e 는절대로재선언(r ecl aime) 되지않는다. 그러므로현재는비어있지만한때행(r ows) 을50 개까지가지고있었던블록은header 안의row directory 에할당되었던100 byt es 를계속가지고있다. 오라클은그블록에새로운행(r ows) 이입력(insert ) 될때만이space 를다시사용한다.
행들(r ows) 들의임력(insert s)/ 갱신(updat es) 또는추가적인트랜잭션항목(additional transaction entries) 들에사용할수있는(블록안의) 바이트들의모임(a set of byt es) 이위치한다.
Fr ee space 는새행들을입력(insert ing) 할때와추가적인
Fr ee space space 가필요한r ows 들의갱신(예를들어trailing null 이non -nul l value 로갱신될때)에사용된다.
제기된행입력작업(issued insertions) 이주어진dat a
bl ock 안에서실제로일어날지여부는space management
par amet er 인PCTFREE 의값과현재그dat abl ock 내f r ee
space 의용량, 이들둘사이의함수관계에서결정된다.
(Transaction entries)
-Table, Cluster 의dat a segment 또는I ndex 의index segment
에할당되는Data blocks 들은그들의Fr ee space 를트랙잭션항목들(Transaction entries )을위해사용할수있다.
-해당블록안에있는하나또는둘이상의행들(r ows) 에접근하는INSERT, UPDATE, DELETE, SELECT...FOR UPDATE st at ement 문각각에대해서한블록안에하나의Transaction entry 가필요하다.
-Transaction entries 들을저장하는데필요한Spa c e 의크기는운영체계에따라다르다.; 대부분의운영체계에서는약23 byt es 이다.
-Transaction entries 들은Fr ee space 안에저장되고, 행차원의잠금(row-level locking) 에사용된다.
Storage Allocation 관리8-19
탄약정보체계(운영자용) Oracle7 Administration
8.9 Space Management Parameters
행들(r ows) 을입력(insert s), 갱신(updat es), 삭제(delect s) 하는데필요한Dat abase 내Fr ee space 의용도를제어하려면, Space utilization
par amet er s 의적당한설정값을만들어줘야한다.
(Space Management Parameters)
-PCTFREE 와PCTUSED 는data blocks 들안에행들(r ows) 을입력하고또는갱신하는데필요한space 의용도(us e) 를제어할수있도록해준다.
-CREATE 와ALTER 문들을사용하는테이블들(Tabl es), 클러스터들(clust ers), 스넵샷들(Snapshot s) 에는두파라미터모두설정할수있다.; 마찬가지로인덱스들(I ndexes ) 에는PCTFREE 가설정될수있다.
-PCTFREE 와PCTUSED 는합은반듯이100 보다작거나같아야한다.
Par ame t e r 설명PCTFREE
각da t a b l oc k 내Sp a c e 의퍼센트를정하여차후에테이블의행들(r ows ) 를갱신할때그남겨둔s p a c e 를쓸수있도록예약한다.
기본값은10%
PCTUSED
테이블의da t a b l oc k 각각에오라클이유지하고있는사용된저장공간(Us e d s p a c e ) 의최소치를퍼센트로설정한다.
한블록의Us e d s p a c e 가PCTUSED 이하로내려가면그블록은행입력(r ow i n s e r t i on ) 에사용될블록들의목록에올라간다.
I NI TRANS
Bl oc k h e a d e r 안에초기에할당되는Tr a n s a c t i on e n t r i e s
(트렌잭션항목)들의숫자를말한다.
MAXTRANS
블록에동시에접근할수있는Tr a n s a c t i on 의최대개수를말한다.
Storage Allocation 관리8-20
탄약정보체계(운영자용) Oracle7 Administration
8.10 PCTFREE
블록안에이미포함되있던행들(r ows) 을갱신(updat e) 할수있도록블록내일부분을PCTFREE 파라미터로미리예약(사용가상태를유지시킨다; kept free) 한다.
(PCTFREE)
-기본값은10 이다.
-입력이계속되어PCTFREE 값에닿게되면그후부터는블록이다찬걸로간주되어새로운행들의입력에사용할수없게된다.
-Indexes 들을만들(cr eat i ng) 거나수정(alt ering) 할때역시PCTFREE 값을설정할수있다.
-Free space 는새행들의입력(Insertion of new rows), 존재하던행들의성장(Growth of existing rows), Data block header 의성장에기인하여채워진다.
-한블록의Fr ee space 가PCTFREE t hr eshol d( 문턱값) 아래로떨어지면그블록은Free list 에서제외된다.
-Indexes 들에서설정될때, PCTFREE 는입력(insert ) 과갱신(updat e)
두작업을위해space 를예약한다.
(공식) 다음공식을사용해서Fr ee space 의퍼센트를계산할수있다.
(max # bytes per row) -(# of bytes inserted row)
PCTFREE= × 100
(max # of bytes per row)
-[주] PCTFREE 가위공식에의해계산되었다하더라도, Row migration
과Row chaining 은피할수없다.
Storage Allocation 관리8-21
탄약정보체계(운영자용) Oracle7 Administration
8.11 PCTUSED -Ⅰ
(PCTUS ED 파라미터를설정하는이유) PCTUSED 파라미터를설정해
줌으로서해당블록에새로운행들을입력해도된다라는판단의기준을만들수있다.
-[Fr e e l i s t ] Fr e e l i s t 목록안에블록이존재하는한새로운행들이입력된다.
-[Free list 에서제외되는때] 블록이PCTFREE t hr eshol d 에닿았을때그블록은free list 에서제외되고, PCTUSED 보다이미많이채워진상태이다.
Fr e e l i s t 에추가될때삭제될때Us e d s p a c e 가PCTUSED 아래로떨어질때100-PCTFREE 위로
(PCTUS ED)
-PCTUSED 는행입력(row insertion) 이가능한때를결정하는문턱값(t hr eshol d) 이다.
-사용중인블록(단수)의퍼센트가, 컬룸의저장크기(column storage) 를줄이는행삭제(row deletion) 또는갱신(r ow updat e) 을통해서,
PCTUSED 이하(PCTUSED=40 인경우39% 또는그아래값)로떨어지면,
그블록은다시새행들의입력을받을수있게된다.
-기본값은40 이다.
Storage Allocation 관리8-22
탄약정보체계(운영자용) Oracle7 Administration
8.11 PCTUSED -Ⅱ
오라클서버는PCTUSED 아래로떨어진블록을찾아서free list 에추가시킨다.
(Free list)
-새로운행들의입력에사용될수있는블록들을가르키는지시자들(Point ers) 의목록이다.; 이미해당s egment 의ext ent s 에할당되었고PCTFREE 보다큰fr ee space 를가진블록들의목록이다.
-Data/index segment 각각에대해, 오라클은하나또는둘이상의free lists 를유지한다.
-[I NSERT 문을사용하면] I NSERT 문을사용하게되면, 오라클은그테이블의free list 를검색(checks ) 하여첫번째가용블록(first available block) 을찾아낸다. 그리고그것이쓸수있으면사용한다.; if the free space in that block is not
large enough to accommodate the INSERT statement, and
it is at least PCTUSED, Oracle takes the block off the
free list.
-[Multiple free lists] 하나의s egment 에free list 가여러개존재할경우, 동시입력(concurrent inserts) 이일어났을때free lists 들에대한경합(cont ent i on) 을줄일수있다.
-[DELETE 와UPDATE 문을사용하면] 우리가DELETE 와UPDATE 문을사용하면그후에오라클은블록안에서사용중인space 가PCTUSED 보다작은지를검색한다.; 만일그런블록이발견될경우,
그블록은free list 의처음으로가게되고, 사용될가용블록의첫번째가된다.
Storage Allocation 관리8-23
탄약정보체계(운영자용) Oracle7 Administration
8.12 Space Usage 제어-Ⅰ
PCTFREE 와PCTUSED 를잘사용하면수행능(per formance) 와저장공간이용(space utilization) 을향상시킬수있다.
(PCTFREE)
-[낮게설정되있다면]
블록들이보다충실히채워진다.
동일한Dat a 를저장하는데보다적은수의bl ocks 들이사용된다.
오라클서버가블록들을자주재조정(r eor gani ze) 해야함으로, 프로세스의사용정도(Processing costs) 를증가시킨다.
Row migrat ion 을유발한다.
-[높게설정되있다면]
이후갱신(updat es) 에사용될저장공간이보다많이예약된다.
동일한Dat a 를저장하는데보다많은수의bl ocks 들이필요하게된다.
오라클서버가좀처럼블록들을재조정(r eor gani ze) 하지않기때문에, 프로세스의사용정도(Processing costs) 가감소한다.
Row ch a i n i n g 이감소된다.
(PCTUS ED)
-[낮게설정되있다면]
블록들이좀처럼비워(f r e e ) 지지않으므로, 프로세스의사용정도(Pr oc e s s i n g c o s t s ) 가감소한다.
사용않는저장공간(u nu s e d s p a c e ) 를증가시킨다.
-[높게설정되있다면]
블록들이자주비워(f r e e ) 지므로, 프로세스의사용정도(Pr oc e s s i n g
c o s t s ) 가증가한다.
저장공간사용(s p a c e u s a ge ) 를증가시킨다.
(계속)
Storage Allocation 관리8-24
탄약정보체계(운영자용) Oracle7 Administration
8.12 Space Usage 제어-Ⅱ
(계속)
-[참고]
한Data block 내f r ee space 의퍼센트가PCTFREE 값에일단도달하면,
Used space 가PCTUSED 값아래로떨어질때까지절대로행들(r ows) 이그블록에입력(insert ) 되지않는다. 그러므로, 만일PCTUSED 값이낮게설정되있다면, 그블록은좀처럼빈(f r ee) 상태가되지않을것이고, free list 에그블록을추가/ 삭제하는프로세스들역시감소할것이다. 반대로, PCTUSED
값이높게설정되있다면, 그블록은자주빈(f r ee) 상태가될것이고, free
l i st 에그블록을추가/ 삭제하는프로세스들역시증가할것이다.
(PCTFREE 와PCTUS ED를같이사용하기)
-[잇점] PCTFREE 와PCTUSED 를함께사용하여Dat a segment 의ext ent s 들의data blocks 들안에있는Sp a c e 의사용(Ut i l i zat ion) 을최적화시킬수있다. 다음그림은이것의예이다.
-[그림] PCTFREE 와PCTUSED 를동시에이용해서Data blocks 들의Fr ee space 를확보하자. 다음페이지에있다.
-[최적화] 저장공간의사용(Space utilization) 증대와입/ 출력수행능(I/O performance) 향상이라는두가지상반된숙제를이상적으로절충하려면PCTFREE 와PCTUSED 의합(合)이, 평균행(aver age r ow) 하나가블록내가용한Sp a c e 를차지하는퍼센트만큼, 100 보다작아야한다. 예를들어, Data block 크기가2048
byt es 라고하면, overhead 로100 byt es 를빼고남은1948
byt es 가dat a 를저장할수있는가용공간이다. 만일평균행(aver age r ow) 하나가195 byt es 를차지할경우(1948 byt es 의10%), 합(合)을90% 로유지하면서적절한비율로PCTFREE 와PCTUSED 값이설정한다면Dat abase space 는최상의가용상태가된다.
Storage Allocation 관리8-25
탄약정보체계(운영자용) Oracle7 Administration
8.12 Space Usage 제어-Ⅲ
Storage Allocation 관리8-26
탄약정보체계(운영자용) Oracle7 Administration
8.12 Space Usage 제어-Ⅳ
(I NI TRANS & MAX TRANS ) 이두파라미터를사용해서단일블록내Ac t i v e t r a n s a c t i on s 들의개수는결정할수있다.
-[I NI TRANS]
동시트랜잭션들(Con cu r r e n t t r a n s a c t i on s ) 에게해당트랜잭션항목들(Tr a n s a c t i on e n t r i e s ) 의최초개수이다. 이들트랜잭
션항목들은블록이할당될때마다각블록해더(bl ock header ) 에할당된
다.(기본값은1, 최소값1, 최대값255)
각트랜잭션항목들(Transaction entries) 은길이가약23 byt es 정도
이다.(운영체계에따라다르다.)
-[MAXTRANS]
블록하나가지원할수있는동시트랜잭션들(Concurrent transactions)
의최대개수최대값은255
기본값은운영체계마다다르지만일반적으로255 이다.
트랜잭션각각은블록의f r ee space 를약23 byt es 사용한다. 만일블록의f r ee space 가이미사용되었다면, 트랜잭션들은그블록에접근하기위해반듯이기다린다.
-[그림]
Dat a Bl ock Dat a Header
Bl oc k He a d e r
Fr e e Sp a c e
Us e d Sp a c e
(Row Da t a )
Row
Po i n t e r
Row
Po i n t e r
Row
Po i n t e r
Row
Po i n t e r
Row
Po i n t e r
Row
Po i n t e r
Row
Po i n t e r
Tr ans a c t i on
Ent r y
Tr ans a c t i on
Ent r y
Tr ans a c t i on
Ent r y
Tr ans a c t i on
Ent r y
Storage Allocation 관리8-27
탄약정보체계(운영자용) Oracle7 Administration
8.12.1 참고: Free Space 의가용성(Avai l abi l i ty) 과압축(Compressi on)
(가용하게만들기) 다음두가지형태의문(st at ement s) 은하나또는
둘이상의블록들에서fr ee space 로space 를돌려준다.
-[DELETE 문] 하나는DELETE 문이고
-[UPDATE 문] 다른하나는기존값들을작은값들로갱신(updat e) 하는UPDATE 문이다.
(Avai l abl e space 의사용) 이렇게해제된저장공간(The released
space) 는차후에다음조건하에서I NSERT 문들에의해사용된다.
-[조건1] 만일Sp a c e 를해제(fr ees) 한문과동일Transact ion 안에위치하면서그것의뒤를바로잇는I NSERT 문은가용상태가된space 를사용할수있다.
-[조건2] 만일I NSERT 문이한Transact ion 안에위치하고Sp a c e
를해제시키는문이다른두번째Transact ion 안에위치한다면(아마다른사용자에의해실행되었을것이다.), 그I NSERT 문은두번째Transact ion 의c ommi t s 이일어난후에그Sp a c e 가꼭필요할경우에만가용하게된Sp a c e 사용할수있다.
(Compressi on; 압축)
-해제된저장공간(Rel eased space) 은Data block 내Fr ee space
의주영역(main area) 와연속적이거나그렇지않을수있다.
-[Compression 이일어나는상황] 새로운행조각(row piece) 이들어갈충분한fr ee space 를가지고있지만아직조각나있어서(i s
fragment ed) 새로운행조각(r ow pi ece) 이그블록의연속영역(cont i guous sect i on) 에들어가지못하는상황에처한블록을I NSERT 또는UPDATE 문이사용하려할때만, 오라클은그Dat a
bl ock 의fr ee space 를성장(coal esces) 시킨다.
-오라클은fr ee space 의compr essi on 을DELETE 또는UPDATE
문이사용될때마다하지않고위에설명한상황에서만실시하므로Dat abase syst em 의수행능(Per formance) 이저하되지않는다.
Storage Allocation 관리8-28
탄약정보체계(운영자용) Oracle7 Administration
8.13 Chaining 과Migration -Ⅰ
Dat abase syst em 의수행능의저하를막기위해서Row chaining
과Row migration 을감시(monit or) 해야한다.
(Chai ni ng; 連結)
-행(r ow) 하나가블록하나에다들어가지않을때, 그행의dat a 는블록들의연결체안에(in a chai n of data blocks) 저장된다.
-행이처음저장되었던블록안에그행의최초의행조각(r ow pi ece) 이
남아있다.
-추가행조각(row piece) 각각은연결된블록(a chained block)
안에들어간다.
Bl o c k He a d e r
컬룸1
의길이컬룸1
의Da t a
컬룸2
의길이컬룸2
의Da t a
컬룸2
의Da t a
컬룸3
의길이컬룸3
의Da t a
컬룸4-NULL
의길이컬룸5
의길이컬룸5 의Da t a
컬룸6
의길이컬룸6
의Da t a
컬룸6 의Da t a
행의나머지에대한Po i n t e r
Chai ned Bl ock Header
컬룸7
컬룸7
의길이
의Dat a
(Migrati on; 移住)
-이주(移住)된행(a Migrated row) 는고향블록(original block)
에서연결된블록(chained block) 으로전체가옮겨진다. 이것의Row header 는그행이처음만들어졌었던블록안에남아있으면서이주된행을저장하는새블록을가르킨다; 이주된행의ROWI D 는바뀌지않는다.
-[언제발생하는가?] 행을갱신하는데필요한Sp a c e 가현재그블록의가용한것보다더많이필요할때일어난다.; 어떤한Dat a
bl ock 의행하나가갱신되어결과적으로행의전체크기가증가되고그블록의fr ee space 가완전히채워졌을때행이주가일어난다. 이때새블록이행전체를수용할수있다면, 행의dat a 는새data block 으로이주된다.
-[해결책]
ANALYZE 명령을사용해서ext ent 에Chai ni ng 또는Migrat ing 이일
어나는지를관찰한다.
그객체에대한PCTFREE 값을충분히높게설정해줌으로서과도한행이
주(Excessive rowmigration) 을피할수있다.
그객체를일단expor t 하고, dr op 한다. 그리고다시impor t 한다.
Storage Allocation 관리8-29
탄약정보체계(운영자용) Oracle7 Administration
8.13 Chai ni ng 과Migration -Ⅱ
Tr a i l i n g NULL c o l umn s (NULL c o l umn s a t t h e e n d o f a r ow)
a r e n ot s t or e d i f a dd e d t o t h e t ab l e s t r u c t u r e u s i n g t h e
ALTER TABLE c omma n d
(수행능에대한영향)
-연결된행들(chained rows) 또는이주된행들(migrated rows) 이읽혀질때I/O performance 가저하된다.
-이유는그행들의정보를빼낼때오라클서버는둘이상의Dat a
bl ocks 을검색(s can) 해야하기때문이다.
(ANA L YZE 명령)
-연결된행(chained rows) 들과이주된행(migrated rows) 들을확인할수있다.
-[Synt ax]
ANALYZE TABLE [s chema .]tabl e LI ST CHAI NED ROWS
※ 약식(略式) 임-[어떻게사용하는가?]
ANALYZE 명령은우리s chema 안에CHAI NED_ ROWS 라는테이블에r owi d 와다른정보들을저장한다. 여기서r owi d 는연결된행(chai ned
r ows ) 들과이주된행(migrated rows) 들의최초블록을나타낸다.
ANALYZE TABLE tabl e1 LI ST CHAI NED ROWS I NTO tabl e2 ' 라고설정함으로서정보가CHAI NED_ ROWS 와다른이름을가진테이블에저장된다.
Oracle Server SQL script file
UTLCHAI N.SQL 을실행하여테이블CHAI NED_ ROWS 를만들수있다. 또는수정하여다른이름의테이블을만들수있다.
Storage Allocation 관리8-30
탄약정보체계(운영자용) Oracle7 Administration
8.14 Ext ent 와Se gment 의정보보기-Ⅰ
Data dictionary views 들을질의함으로서얼마나많은ext ent s
들이할당되었고얼마나많은segment s 들이존재하는지를할수있다.
(Data Dictionary Views)
-USER/ DBA_ EXTENTS
-USER/ DBA_ FREE_ SPACE
-USER/ DBA_ SEGMENTS
-DBA_ TABLESPACES
-DBA_ DATA_ FI LES
(예: DBA_ TABLESPACES)
-DBA_ TABLESPACES 의컬룸들의이름을보여라.
SQL> DESCRIBE dba _ tablespaces
NAME NULL? TYPE
TABLESPACE_ NAME NOT NULL VARCHAR2(30)
I NI TI AL_ EXTENT NUMBER
NEXT_ EXTENT NUMBER
MI N_ EXTENTS NOT NULL NUMBER
MAX_ EXTENTS NOT NULL NUMBER
PCT_ I NCREASE NOT NULL NUMBER
STATUS VARCHAR2(9)
CONTENTS VARCHAR2(9)
-Tablespace 각각의상태(st atus) 와이름을보여라.
SQL> SELECT tablespace _ name, status, contents
2FROMdba _ tablespaces;
TABLESPACE_ NAME STATUS CONTENTS
TOOLS ONLI NE PERMANENT
USERS ONLI NE PERMANENT
Storage Allocation 관리8-31
탄약정보체계(운영자용) Oracle7 Administration
8.14 Ext ent 와Se gme nt 의정보보기-Ⅱ
(예: DBA_ DATA_ FILES)
-DBA_ DATA_ FI LES 의컬룸들의이름을보여라.
SQL> DESCRIBE dba _ data _ files
NAME NULL? TYPE
FI LE_ NAME VARCHAR2(257)
FI LE_ I D NUMBER
TABLESPACE_ NAME VARCHAR2(30)
BYTES NUMBER
BLOCKS NUMBER
STATUS VARCHAR2(9)
-Tabl espace 각각에속하는dat af i l es 들의일반적인정보를보여라
SQL> SELECT file name,file id,tablespace name,bytes
_ _ _
2 FROM db a _ d a t a _ f i l e s ;
FI LE_ NAME FI LE_ I D TABLESPACE_ NAME BYTES
/home/ dba 01/ da t a/ db s DBA01_ 1.db f 1 SYSTEM 10485760
. . .
(예: DBA_ FREE_ SPACE)
-각각의t ablespace 내fr ee space 의ext ent s 들을보여라.
SQL> SELECT *
2FROMdba _ free _ space
3ORDER BY file _ id, block_ id;
TABLESPACE_ NAME FI LE_ I D BLOCK_ I D BYTES
SYSTEM 1 900 18432
SYSTEM 1 909 4096
SYSTEM 1 1912 6572032
BYTES
9
2
3209
Storage Allocation 관리8-32
탄약정보체계(운영자용) Oracle7 Administration
8.14 Ext ent 와Se gment 의정보보기-Ⅲ
-각data file 의File ID 대신에이름을사용해서위와동일한정보를보여라
SQL> SELECT free.tablespace _ name,block_ id,free.bytes,
2free.blocks, df.file name
_
3 FROM db a _ f r e e _ s p a c e f r e e , db a _ d a t a _ f i l e s d f
4 WHERE f r e e .f i l e _ i d = d f .f i l e _ i d
5 ORDER BY 1, 2;
TABLESPACE
_ NAME BLOCK_ I D BYTES BLOCKS FI EL_ NAME
SYSTEM 900 18432 9 /home/dba01/dat a/dbsDBA_ 1.dbf
SYSTEM 909 4096 2 /home/dba01/dat a/dbsDBA01_ dbf
SYSTEM 1912 6572032 3209 /home/dba01/dat a/dbsDBA01_ dbf
...
(예: DBA_ SEGMENTS)
-DBA_ SEGMENTS 의컬룸들의이름을보여라.
SQL> DESCRIBE dba _ data _ files
NAME NULL? TYPE
OWNER VARCHAR2(30)
SEGMENT_ NAME VARCHAR2(81)
SEGMENT_ TYPE VARCHAR2(17)
TABLESPACE_ NAME VARCHAR2(30)
HEADER_ FI LE NUMBER
HEADER_ BLOCK NUMBER
BYTES NUMBER
BLOCKS NUMBER
EXTENTS NUMBER
I NI TI AL_ EXTENT NUMBER
NEXT_ EXTENT NUMBER
MI N_ EXTENTS NUMBER
MAX_ EXTENTS NUMBER
FREELI STS NUMBER
FREELI ST_ GROUPS NUMBER
Storage Allocation 관리8-33
탄약정보체계(운영자용) Oracle7 Administration
8.14 Ext ent 와Se gme nt 의정보보기-Ⅳ
-Dat abase 내모든Segment s 들에대한일반정보를보여라
SQL> SELECT owner,segment _ name,extents,max_ extents
2FROMdba _ segments
3ORDER BY owner segment _ name;
OWNER SEGMENT_ NAME EXTENTS MAX_ EXTENTS
SCOTT EMP 5 25
SYSTEM RBS1 20 121
SYSTEM RBS2 2 121
SYS UNDO$ 50 99
...
-DBA_ SEGMENTS 뷰를가지고확장영역할당(extent allocation)
에대한종합정보(Summary information) 를보여라.
-이테이블에보고서를실행시켜서Fr agment at i on 수준과MAX_
EXTENTS 값에도달에따른위험수준을결정해라.
-모든Tabl espace 각각의모든segment s 들에대한Group summary
informat ion 을보여라.
SQL> SELECT TABLESPACE_ NAME, COUNT(*) AS SEGMENTS,
2sum(byt es) AS BYTES
3FROMdba _ segments
4ORDERBYtablespace _ name;
TABLESPACE_ NAME SEGMENTS BYTES
APPL_ DATA 10 10240
RBS 2 40960
SYSTEM 108 2240512
TEMP 0 20480
Storage Allocation 관리8-34
탄약정보체계(운영자용) Oracle7 Administration
8.14 Ext ent 와Se gment 의정보보기-Ⅴ
(예: DBA_ EXTENTS)
-DBA_ EXTENTS 의컬룸들의이름을보여라.
SQL> DESCRIBE dba _ extents
NAME NULL? TYPE
OWNER VARCHAR2(30)
SEGMENT_ NAME VARCHAR2(81)
SEGMENT_ TYPE VARCHAR2(17)
TABLESPACE_ NAME VARCHAR2(30)
EXTENT_ I D NOT NULL NUMBER
FI LE_ I D NOT NULL NUMBER
BLOCK_ I D NOT NULL NUMBER
BYTES NUMBER
BLOCKS NOT NULL NUMBER
-Dat abase 내현재할당되있는ext ent s 들에대한정보를보여라.
SQL> SELECT * FROMdba_ extents;
SEGMENT_ SEGMENT_ TABLESPACE_
OWNER NAME TYPE NAME EXTENT_ I D FI LE_ I D BLOCK_ I D BYTES BLOCKS
...
SCOTT EMP TABLE USER_ DATA 0 2 380 10240 5
SCOTT EMP TABLE USER_ DATA 1 2 380 10240 10
SCOTT EMP TABLE USER_ DATA 2 2 390 20480 20
SCOTT EMP TABLE USER_ DATA 3 2 400 30720 40
SCOTT EMP TABLE USER_ DATA 4 2 415 40960 80
...
Storage Allocation 관리8-35
탄약정보체계(운영자용) Oracle7 Administration
8.15 De-al l ocat i on of Unused Space
Used Block
Unused Block
Extent ID 0 1 2 3
122
Block ID 87 92 97 107
High Water Mark
Used Block
Unused Bl ock
Free Space After Delete
Extent ID 0 1 2 3 4
122
Block ID 87 92 97 107
High Water Mark
It is not uncommon to allocate space to a segment, only
to find out later that it is not being used. Therefore it
is possible to de-allocate unused space so that other
segments can use the space.
Se gmen t 안에서
High water mark 는used space 의양을표시한다. 만일우리가r ows 를삭제(delet e) 하더라도
High water mark
는움직이지않는다.
-High water mark 아래의Sp a c e 는할당이해제(de-al locat e) 되
지않는다.
-Package pr ocedur e 인DBMS_ SPACE.UNUSED_ SPACE 를사용해서High water mark 를찾아낼수있다.
-만일한s egment 가완전히비(empt y) 게되면, 그Sp a c e 를SQL 명령인TRUNCATE DROP STORAGE 를사용해서해제시킬수있다.
Storage Allocation 관리8-36
탄약정보체계(운영자용) Oracle7 Administration
8 .15 .1 참고: TRUNCATE, SQL 명령-Ⅰ
(Sy nt ax)
Where :
TABLE
우리가Tr u n c a t e 할테이블의이름과s ch ema 를설정한다. 만일s ch ema 를생략하면, 오라클은그테이블의s ch ema 를명령을실행하는사람소유의것으로간주한다.
이테이블은c l u s t e r 의일부가될수없다.
우리가테이블을t r u n c a t e 하면, 오라클은자동으로그테이블의i n d e x e s 들의모든da t a 를삭제(d e l e t e ) 한다.
CLUSTER
우리가Tr u n c a t e 할c l u s t e r 의이름과s ch ema 를설정한다.
만일s ch ema 를생략하면, 오라클은그c l u s t e r 의s ch ema 를명령을실행하는사람소유의것으로간주한다.
우리는Ha s h c l u s t e r 가아닌오직I n d e x e d c l u s t e r 만을t r u n c a t e 할수있다.
우리가클러스터를t r u n c a t e 하면, 오라클은자동으로그클러스터의테이블들의i n d e x e s 들의모든da t a 를삭제(d e l e t e ) 한다.
DROP STORAGE
테이블또는클러스터에서삭제(d e l e t e ) 된행들로부터s p a c e
의할당을회수(d e a l l oc a t e ) 한다.
이렇게회수된Sp a c e 는차후에같은Ta b l e s p a c e 안의다른객체들에의해사용된다.
R E U S E
STORAGE
테이블또는클러스터에서삭제(d e l e t e ) 된행들의s p a c e 를남겨(Le a v e ) 둔다.
이때STORAGE 값은테이블또는클러스터가처움생성되었을때값으로재설정되지않는다.
이s p a c e 는차후에그테이블또는클러스터안에서입력(i n s e r t s ) 와갱신(u n da t e s ) 작업에의해만들어진새로운da t a 에의해서만사용된다.
-DROP STORAGE 또는REUSE STORAGE 옵션은관련된인덱스들로부터삭제된dat a 에의해해제된space 에도마찬가지로적용된다.
-DROP STORAGE 또는REUSE STORAGE 옵션모두를생략했을경우,
오라클은DROP STORAGE 옵션을기본(default ) 으로사용한다.
Storage Allocation 관리8-37
탄약정보체계(운영자용) Oracle7 Administration
8.15.1 참고: TRUNCATE, SQL 명령-Ⅱ
(TRUNCATE vs DELETE) 테이블또는클러스터로부터행들을빠르게
삭제(r emove) 하길원할때TRUNCATE 명령을사용한다.
-[DELETE 명령보다TRUNCATE 명령이더빠른이유]
TRUNCATE 명령은DDL(Dat a Def i ni t i on Language) 명령어이므로롤백
정보(rollback information.) 를만들지않는다.
테이블을Truncat e 하는것은그테이블의DELETE triggers 들의동작을
유발시키지않는다.
한Snap s h ot 의마스터테이블(master table) 을t runcat e 하는것은그
테이블의snapshot l og 에어떤변화(changes ) 도기록하지않는다.
(Deallocating Space) TRUNCATE 에옵션을사용해서, 행들이삭제됨으로자유롭게된Sp a c e 에대해서할당을해제할수있다. DROP
STORAGE 옵션은대상테이블의MINEXTENTS parameter 에의해설정된Sp a c e 를제외한다른모든space 에대한할당을회수(deal locat e) 한다.
(TRUNCATING vs Dropping and Recreating) TRUNCATE 명령을사용해행들을삭제하는것이테이블dr oppi ng 했다가다시r ecr eat i ng 하는것보다편리한다.
-[이유]
Dropping and recreating 은그테이블에의존적인객체들을무효화(inval idat e) 시키는반면Truncat ing 은그렇지않다.
Dropping and recreating 의경우객체권한들(object privileges) 을우리가다시그테이블상에허가(regrant ) 해줘야한다. 그에반해Truncat ing 은그럴필요가없다.
Dropping and recreating 의경우우리는그테이블의I ndexes ,
integrity constraints, triggers 들을다시만들어줘야하고그것의STORAGE par amet er s 들역시재설정해줘야한다. 그에반해Truncat ing
은그럴필요가없다.
Storage Allocation 관리8-38
탄약정보체계(운영자용) Oracle7 Administration
8 .15 .1 참고: TRUNCATE, SQL 명령-Ⅲ
(NEXT extent 의크기) 테이블을t runcat e 할때, NEXT ext ent 의크기는가장최근삭제된ext ent 크기로자동재설정된다.
You cannot individually truncate a table that is part of
a cluster. You must either truncate the cluster, delete
all rows fromthe table, or drop and recreate the table.
참조무결성제약(referential integrity constraint) 이걸려있는부모테이블(parent table) 을Truncat e 할수없다. 이를실행하려면반듯이먼저그제약(const raint ) 을풀어줘야(di sabl e) 한다.
If you truncate the master table of a snapshot, Oracle7
does not record the removed rows in the snapshot log.
For this reason, a fast refresh does not remove the rows
f r om t h e s n ap s h ot . Sn ap s h ot s b a s e d on a t r u n c a t e d t ab l e
mu s t b e r e f r e s h e d c omp l e t e l y f or Or a c l e 7 t o r emov e t h e i r
r ows .
TRUNCATE 문은롤백(r o l l b a c k ) 시킬수없다.
Storage Allocation 관리8-39
탄약정보체계(운영자용) Oracle7 Administration
8.16 Deallocation of Unused Space
ALTER TABLE 명령을사용해서사용안되는Space(Unused space)
의할당을회수할수있다.
(Sy nt ax)
ALTER TABLE
tabl e
s chema
DEALLOCATE UNUSED
KEEP i nt eger
K
M
※ 이Synt ax 는약(略)된것이다.
(예)
SQL> ALTER TABLE b i g_ emp DEALLOCATE UNUSED;
Table Altered.
Used Block
Free Space After Delete
Extent ID 0 1 2 3 4
Block ID 87 92 97 107 122
High Water Mark
( 주i -
-h ) S p g h w U n u s 을사D B A _ 졌는지보면된a c e 에a t e r e d s p 용한다F R E E 를확다. 대한m a r k 는a c e 모. _ S P A C 인할수할두E 당바의뷰있회뀌할를다수지당보. ; ( D 않을면E X e -a l l 는다. 회수하, 할당T E N T _ o c 고이I a D t i n g 싶지회수된, F I L s p 않을S E _ a p I c a D e 경c , ) 가우e B 가L 일K O 어E E 자C K 날P 유_ 구로I 때절와D 를, S t o r a g e A l l o c a t i o n 관리8 -4 0
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 7 C o a l e s c i n g F r e e S p a c e
( C o a l e s c i n g F r e e s p a c e 란 ? ) 확 장 영 역 ( E x t e n t s ) 들 을 이 용 해 서
T a b l e s p a c e 의 s p a c e 를 관 리 한 다 . e x t e n t s 들 은 주 어 진 개 수 의 연
속 적 인 데 이 터 블 록 ( c o n t i g u o u s d a t a b l o c k s ) 들 로 만 들 어 져 있 다 .
만 일 크 고 비 어 있 는 확 장 영 역 ( a l a r g e r f r e e e x t e n t s ) 하 나 가 조 각
나 ( i s f r a g m e n t e d ) 있 거 나 또 는 작 은 연 속 공 간 ( S m a l l e r
c o n t i g u o u s s p a c e s ) 들 이 여 러 개 있 다 면 , 그 T a b l e s p a c e 는 내 부 적
인 합 체 ( c a n b e c o a l e s c e d ) 가 일 어 난 다 .
이 작 업 은 기 본 적 으 로 S y s t e m m o n i t o r ( S M O N ) p r o c e s s 가 담 당 하 고
있 다 . 그 렇 지 만 다 음 같 이 S Q L 명 령 인 A L T E R T A B L E S P A C E 와 옵 션 인
C O A L E S C E 구 절 을 사 용 해 서 이 를 수 행 할 수 도 있 다 .
S V R M G R > A L T E R T A B L E u s e r s C O A L E S C E ;
( D B A _ F R E E _ S P A C E _ C O A L E S C E D ) 어 떤 T a b l e s p a c e 의 내 부 적 합
체 가 능 한 확 장 영 역 들 ( c o a l e s c e a b l e e x t e n t s ) 에 대 한 통 계 치
( S t a t i s t i c s ) 를 보 려 면 , D B A _ F R E E _ S P A C E _ C O A L E S C E D 뷰 를 보 면
된 다 . 이 뷰 를 통 해 서 t a b l e s p a c e 가 합 체 가 필 요 한 지 여 부 를 결 정 할
수 있 다 .
( 주 ) 매 8 번 합 체 ( c o a l e s c e s ) 가 있 은 후 에 야 S p a c e t r a n s a c t i o n
이 c o m m i t s 되 고 다 른 T r a n s a c t i o n s 들 이 s p a c e 를 할 당 하 거 나 할
당 을 회 수 할 수 있 다 . 즉 이 말 의 뜻 은 우 리 가 A L T E R T A B L E S P A C E 명
령 을 여 러 번 사 용 할 수 있 다 는 것 이 다 .
S t o r a g e A l l o c a t i o n 관 리 8 - 4 1
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 8 V a l i d a t i n g S t r u c t u r e s - Ⅰ
I n d e x , t a b l e , c l u s t e r 의 구 조 ( s t r u c t u r e ) 의 무 결 성 ( i n t e g r i t y )
을 확 인 ( v e r i f y ) 하 자 .
( S y n t a x )
※ 여 기 서 주 목 할 부 분 은 V A L I D A T E S T R U C T U R E 구 절 이 다 .
W h e r e :
i n d e x
분 석 ( a n a l y z e ) 할 i n d e x 를 구 분 ( i d e n t i f y ) 한 다 . 만 일
s c h e m a 가 생 략 하 면 , 오 라 클 은 그 테 이 블 의 s c h e m a 를 명 령 을
실 행 하 는 사 람 소 유 의 것 으 로 간 주 한 다 .
t a b l e
분 석 ( a n a l y z e ) 할 t a b l e 를 구 분 ( i d e n t i f y ) 한 다 . 만 일
s c h e m a 가 생 략 하 면 , 오 라 클 은 그 테 이 블 의 s c h e m a 를 명 령 을
실 행 하 는 사 람 소 유 의 것 으 로 간 주 한 다 .
c l u s t e r
분 석 ( a n a l y z e ) 할 c l u s t e r 를 구 분 ( i d e n t i f y ) 한 다 . 만 일
s c h e m a 가 생 략 하 면 , 오 라 클 은 그 테 이 블 의 s c h e m a 를 명 령 을
실 행 하 는 사 람 소 유 의 것 으 로 간 주 한 다 .
V A L I D A T E
S T R U C T U R E
분 석 된 객 체 ( T h e a n a l y z e d o b j e c t ) 의 구 조 ( s t r u c t u r e ) 를
유 효 하 게 만 든 다 . 만 일 클 러 스 터 를 분 석 할 때 이 옵 션 을 사 용 하
면 , 자 동 으 로 오 라 클 은 그 클 러 스 터 의 모 든 테 이 블 들 의 구 조 를
유 효 하 게 만 든 다 .
C A S C A D E
테 이 블 또 는 클 러 스 터 와 관 련 된 모 든 인 덱 스 들 의 구 조 를 유 효
하 게 만 든 다 .
S t o r a g e A l l o c a t i o n 관 리 8 - 4 2
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 8 V a l i d a t i n g S t r u c t u r e s - Ⅱ
오 라 클 서 버 가 성 공 적 으 로 구 조 ( s t r u c t u r e ) 를 유 효 하 게 ( v a l i d a t e )
만 들 면 , 그 것 의 유 효 화 를 확 인 하 는 메 시 지 ( a m e s s a g e c o n f i r m i n g
i t s v a l i d a t i o n ) 가 화 면 에 뿌 려 진 다 . 만 일 오 라 클 서 버 가 객 체 의 구
조 상 망 실 ( c o r r u p t i o n ) 을 만 나 게 되 면 , 그 에 대 한 오 류 를 화 면 에 뿌 려 준
다 . 이 경 우 그 객 체 를 d r o p 하 고 다 시 만 들 어 ( r e c r e a t e ) 줘 야 한 다 .
( I N D E X _ S T A T S ) A N A L Y Z E . . . V A L I D A T E S T R U C T U R E 명 령 이 인 덱
스 의 분 석 에 사 용 될 때 , I N D E X _ S T A T S 테 이 블 은 통 계 적 인 정 보
( S t a t i s t i c a l i n f o r m a t i o n ) 를 기 록 하 게 된 다 .
( 예 )
- 인 덱 스 P A R T S _ I N D E X 의 구 조 를 유 효 하 게 만 들 어 라 .
S Q L >
2
A N A L Y Z E I N D E X p a r t s _ i n d e x
V A L I D A T E S T R U C T U R E ;
I n d e x a n a l y z e d
- 클 러 스 터 O R D E R _ C U S T S 의 구 조 그 리 고 그 것 의 테 이 블 들 의 구 조 , 그
들 테 이 블 들 의 인 덱 스 들 의 구 조 , 클 러 스 터 인 덱 스 ( c l u s t e r i n d e x ) 도
포 함 해 서 , 를 유 효 하 게 만 들 어 라 .
S Q L >
2
3
A N A L Y Z E C L U S T E R o r d e r _ c u s t s
V A L I D A T E S T R U C T U R E
C A S C A D E ;
C l u s t e r a n a l y z e d
( V a l i d a t i n g I n d e x e s ; 인 덱 스 들 을 유 효 하 게 )
- 오 라 클 서 버 는 각 각 의 d a t a b l o c k 들 의 무 결 성 ( i n t e g r i t y ) 을 확
인 ( v e r i f y ) 하 고 , 블 록 망 실 ( b l o c k c o r r u p t i o n ) 에 대 한 점 검 을 한 다 .
- 오 라 클 서 버 는 테 이 블 의 각 행 들 이 인 덱 스 항 목 ( i n d e x e n t r y ) 를 가
지 고 있 는 지 또 는 각 인 덱 스 항 목 ( i n d e x e n t r y ) 들 이 테 이 블 의 행 을
가 르 키 는 지 를 확 인 하 지 않 는 다 .
S t o r a g e A l l o c a t i o n 관 리 8 - 4 3
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 8 V a l i d a t i n g S t r u c t u r e s - Ⅲ
( V a l i d a t i n g T a b l e s ; 테 이 블 들 을 유 효 하 게 )
- 오 라 클 서 버 는 각 d a t a b l o c k 의 무 결 성 ( i n t e g r i t y ) 을 확 인
( v e r i f y ) 한 다 .
- C A S C A D E 옵 션 을 사 용 하 면 그 테 이 블 상 의 모 든 인 덱 스 들 의 구 조
( S t r u c t u r e ) 를 유 효 ( v a l i d a t e ) 하 게 만 들 고 , 테 이 블 들 과 그 들 의 인
덱 스 들 사 이 에 교 차 참 조 ( c r o s s - r e f e r e n c i n g ) 가 수 행 된 다 .
( V a l i d a t i n g C l u s t e r s ; 클 러 스 터 들 을 유 효 하 게 )
- 오 라 클 서 버 는 클 러 스 터 안 에 각 행 의 무 결 성 ( i n t e g r i t y ) 을 확 인
( v e r i f y ) 한 다 .
- 오 라 클 서 버 는 클 러 스 터 안 에 각 테 이 블 의 구 조 ( S t r u c t u r e ) 를 유 효
( v a l i d a t e ) 하 게 만 든 다 .
- C A S C A D E 옵 션 을 사 용 하 면 클 러 스 터 의 테 이 블 들 상 의 모 든 인 덱 스
들 , 클 러 스 터 인 덱 스 ( c l u s t e r i n d e x ) 도 포 함 , 의 구 조 ( S t r u c t u r e )
를 유 효 ( v a l i d a t e ) 하 게 만 든 다 .
C A S C A D E 옵 션 이 인 덱 스 들 을 교 차 참 조 ( c r o s s - r e f e r e n c e ) 하 는 데
사 용 될 때
- 테 이 블 의 인 덱 스 된 컬 룸 ( T a b l e ' s i n d e x e d c o l u m n ) 의 값 들 은 각 각 ,
인 덱 스 항 목 ( i n d e x e n t r y ) 의 인 덱 스 된 컬 룸 값 ( i n d e x e d c o l u m n
v a l u e ) 과 반 듯 이 일 치 해 야 한 다 . 일 치 하 는 인 덱 스 항 목 ( i n d e x e n t r y )
은 마 찬 가 지 로 정 확 한 r o w I D 를 가 지 고 테 이 블 안 에 행 을 구 분
( i d e n t i f y ) 해 야 한 다 .
- 인 덱 스 안 에 각 항 목 ( e n t r y ) 은 테 이 블 안 에 행 을 구 분 ( i d e n t i f y ) 한
다 . 인 덱 스 항 목 ( i n d e x e n t r y ) 의 인 덱 스 된 컬 룸 값 ( i n d e x e d
c o l u m n v a l u e ) 은 구 분 된 행 ( i d e n t i f i e d r o w ) 의 그 것 과 반 듯 이
일 치 해 야 한 다 .
S t o r a g e A l l o c a t i o n 관 리 8 - 4 4
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 S p a c e 의 사 용 관 찰 하 기 - Ⅰ
S e g m e n t 의 공 간 사 용 ( s p a c e u s a g e ) 관 찰 하 자 , 특 히 항 목 ( i t e m ) 이 자
주 갱 신 ( u p d a t e ) 될 경 우 이 를 관 찰 해 야 한 다 .
아 래 단 계 들 을 반 복 하 여 S e g m e n t 의 공 간 사 용 의 평 균 효 율 ( t h e
a v e r a g e e f f i c i e n c y o f s p a c e u s a g e o f a s e g m e n t ) 관 찰 하 자 .
( S p a c e U s a g e 관 찰 하 기 : 단 계 )
1 . 객 체 를 A N A L Y Z E 명 령 을 사 용 해 서 분 석 ( a n a l y z e ) 한 다 .
2 . 사 용 되 는 공 간 의 퍼 센 트 를 주 목 한 다 .
단 계 1 , 2 를 규 칙 적 으 로 실 시 하 고 , 그 결 과 결 과 들 과 비 교 한 다 .
만 일 객 체 의 공 간 사 용 ( S p a c e u s a g e ) 가 그 것 의 평 균 밑 으 로 떨 어 지
면 , 우 리 는 그 객 체 에 대 해 서 e x p o r t , d r o p 그 리 고 i m p o r t 를 순 서 대
로 수 행 할 수 있 다 .
인 덱 스 를 분 석 하 기 위 해 서 는 , A N A L Y Z E 명 령 을 사 용 하 거 나 또 는 직 접
i n d e x e s 들 과 관 련 된 d a t a d i c t i o n a r y v i e w s 들 을 질 의 해 야 한 다 .
인 덱 스 들 을 삭 제 ( d r o p ) 하 고 재 생 성 ( r e c r e a t e ) 할 수 있 다 .
S e g m e n t 가 삭 제 ( d r o p ) 또 는 t r u n c a t e 될 때 까 지 , 모 든 확 장 영 역
( e x t e n t s ) 들 은 할 당 된 채 남 아 있 다 .
인 덱 스 공 간 사 용 ( a n i n d e x s p a c e u t i l i z a t i o n ) 을 A N A L Y Z E
S T R U C T U R E 명 령 과 I N D E X _ S T A T S d a t a d i c t i o n a r y t a b l e 을 가 지
고 관 찰 할 수 있 다 .
S t o r a g e A l l o c a t i o n 관 리 8 - 4 5
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 S p a c e 의 사 용 관 찰 하 기 - Ⅱ
A N A L Y Z E 명 령 을 사 용 해 객 체 들 에 대 한 통 계 치 ( s t a t i s t i c s ) 를 수 정
할 수 있 다 .
( S y n t a x )
※ 여 기 서 주 목 할 부 분 은 C O M P U T E S T A T I S T I C S ,
E S T I M A T E S T A T I S T I C S , D E L E T E S T A T I S T I C S 구 절 이 다 .
W h e r e :
i n d e x
분 석 ( a n a l y z e ) 할 i n d e x 를 구 분 ( i d e n t i f y ) 한 다 . 만 일
s c h e m a 가 생 략 하 면 , 오 라 클 은 그 테 이 블 의 s c h e m a 를 명 령 을
실 행 하 는 사 람 소 유 의 것 으 로 간 주 한 다 .
t a b l e
분 석 ( a n a l y z e ) 할 t a b l e 를 구 분 ( i d e n t i f y ) 한 다 . 만 일
s c h e m a 가 생 략 하 면 , 오 라 클 은 그 테 이 블 의 s c h e m a 를 명 령 을
실 행 하 는 사 람 소 유 의 것 으 로 간 주 한 다 .
c l u s t e r
분 석 ( a n a l y z e ) 할 c l u s t e r 를 구 분 ( i d e n t i f y ) 한 다 . 만 일
s c h e m a 가 생 략 하 면 , 오 라 클 은 그 테 이 블 의 s c h e m a 를 명 령 을
실 행 하 는 사 람 소 유 의 것 으 로 간 주 한 다 .
V A L I D A T E
S T R U C T U R E
분 석 된 객 체 ( T h e a n a l y z e d o b j e c t ) 의 구 조 ( s t r u c t u r e ) 를
유 효 하 게 만 든 다 . 만 일 클 러 스 터 를 분 석 할 때 이 옵 션 을 사 용 하
면 , 자 동 으 로 오 라 클 은 그 클 러 스 터 의 모 든 테 이 블 들 의 구 조 를
유 효 하 게 만 든 다 .
( 계 속 )
S t o r a g e A l l o c a t i o n 관 리 8 - 4 6
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 S p a c e 의 사 용 관 찰 하 기 - Ⅲ
( 계 속 )
C A S C A D E
테 이 블 또 는 클 러 스 터 와 관 련 된 모 든 인 덱 스 들 의 구 조 를 유 효
하 게 만 든 다 .
( 통 계 치 분 석 하 기 ; A n a l y z i n g S t a t i s t i c s )
- A N A L Y Z E 명 령 에 의 해 수 정 된 통 계 치 ( s t a t i s t i c s ) 들 은 d a t a
d i c t i o n a r y t a b l e U S E R _ T A B L E , U S E R _ I N D E X E S , U S E R _ C L U S T E R S
에 저 장 된 다 .
- E S T I M A T E 옵 션 의 S A M P L E s i z e 의 기 본 값 은 1 0 6 4 r o w s 이 다 .
- A N A L Y Z E 명 령 을 가 지 고 통 계 치 ( s t a t i s t i c s ) 를 수 정 하 는 것 은
d a t a 에 접 근 하 는 통 로 ( a c c e s s p a t h s ) 들 을 결 정 하 는 데 사 용 되 는 최
적 화 ( o p t i m i z a t i o n ) 의 형 태 에 영 향 을 미 친 다 .
- D B M S _ U T I L I T Y p a c k a g e 안 에 A N A L Y Z E _ S C H E M A p r o c e d u r e 를 사
용 해 서 사 용 자 소 유 의 s c h e m a 안 에 모 든 객 체 들 을 분 석 할 수 있 다 .
- S A M P L E s i z e 를 행 들 의 개 수 의 반 ( 半) 보 다 크 게 설 정 하 게 되 면 , 실 질
적 으 로 C O M P U T E S T A T I S T I C S 옵 션 을 준 것 과 동 일 한 결 과 를 낳 게
된 다 .
S t o r a g e A l l o c a t i o n 관 리 8 - 4 7
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 . 1 참 고 : A N A L Y Z E , S Q L 명 령 - Ⅰ
( 목 적 ) 인 덱 스 , 테 이 블 , 클 러 스 터 상 에 다 음 같 은 일 들 을 할 수 있 다 .
- O r a c l e 7 o p t i m i z e r 에 의 해 사 용 되 는 객 체 에 대 한 통 계 치
( s t a t i s t i c s ) 를 수 정 하 고 , 그 것 들 을 d a t a d i c t i o n a r y 안 에 저 장
한 다 .
- D a t a d i c t i o n a r y 에 서 객 체 에 대 한 통 계 치 ( s t a t i s t i c s ) 를 삭 제
( d e l e t e ) 한 다 .
- 객 체 의 구 조 를 유 효 하 게 만 든 다 . ( t o v a l i d a t e t h e s t r u c t u r e o f
t h e o b j e c t )
- 테 이 블 또 는 클 러 스 터 의 이 주 된 행 들 과 사 슬 같 이 연 결 된 행 들 을 구
별 한 다 . ( t o i d e n t i f y m i g r a t e d a n d c h a i n e d r o w s o f t h e
t a b l e o r c l u s t e r )
( S y n t a x )
S t o r a g e A l l o c a t i o n 관 리 8 - 4 8
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 . 1 참 고 : A N A L Y Z E , S Q L 명 령 - Ⅱ
W h e r e :
i n d e x
분 석 ( a n a l y z e ) 할 i n d e x 를 구 분 ( i d e n t i f y ) 한 다 . 만 일
s c h e m a 가 생 략 하 면 , 오 라 클 은 그 테 이 블 의 s c h e m a 를 명 령 을
실 행 하 는 사 람 소 유 의 것 으 로 간 주 한 다 .
t a b l e
분 석 ( a n a l y z e ) 할 t a b l e 를 구 분 ( i d e n t i f y ) 한 다 . 만 일
s c h e m a 가 생 략 하 면 , 오 라 클 은 그 테 이 블 의 s c h e m a 를 명 령 을
실 행 하 는 사 람 소 유 의 것 으 로 간 주 한 다 .
c l u s t e r
분 석 ( a n a l y z e ) 할 c l u s t e r 를 구 분 ( i d e n t i f y ) 한 다 . 만 일
s c h e m a 가 생 략 하 면 , 오 라 클 은 그 테 이 블 의 s c h e m a 를 명 령 을
실 행 하 는 사 람 소 유 의 것 으 로 간 주 한 다 .
C O M P U T E
S T A T I S T I C S
분 석 된 객 체 에 대 해 정 확 한 통 계 치 ( s t a t i s t i c s ) 를 계 산
( c o m p u t e s ) 하 고 그 것 들 을 d a t a d i c t i o n a r y 안 에 저 장 한 다 .
E S T I M A T E
S T A T I S T I C S
분 석 된 객 체 에 대 해 통 계 치 ( s t a t i s t i c s ) 를 어 림 하 고 ( e s t i m a t e )
그 것 들 을 d a t a d i c t i o n a r y 안 에 저 장 한 다 .
S A M P L E
오 라 클 7 이 표 본 ( s a m p l e ) 으 로 통 계 치 를 어 림 ( e s t i m a t e ) 할 수
있 는 d a t a 의 양 을 설 정 한 다 .
만 일 우 리 가 이 파 라 미 터 를 생 략 하 면 , 오 라 클 7 은 1 0 6 4 r o w s 를
표 본 ( s a m p l e ) 으 로 잡 는 다 .
만 일 d a t a 의 절 반 보 다 많 은 값 을 설 정 하 며 , 오 라 클 7 은 모 든
d a t a 를 읽 고 통 계 치 ( s t a t i s t i c s ) 를 정 확 하 게 계 산 ( c o m p u t e )
한 다 .
R O W S
오 라 클 7 이 테 이 블 또 는 클 러 스 터 의 i n t e g e r 개 행 들 , 또 는
인 덱 스 항 목 들 ( i n d e x e n t r i e s ) 의 i n t e g e r 개 항 목 들
( e n t r i s ) 을 표 본 으 로 삼 을 수 있 게 한 다 .
i n t e g e r ( 정 수 ) 는 최 소 1 이 상 이 어 야 한 다 .
T h e f o l l o w i n g c l a u s e s o n l y a p p l y t o t h e A N A L Y Z E T A B L E v e r s i o n
o f t h i s c o m m a n d :
F O R T A B L E c o l l e c t t a b l e s t a t i s t i c s f o r t h e t a b l e .
F O R A L L
C O L U M N S
c o l l e c t c o l u m n s t a t i s t i c s f o r a l l c o l u m n s i n t h e
t a b l e .
F O R A L L
I N D E X E D
C O L U M N S
c o l l e c t c o l u m n s t a t i s t i c s f o r a l l i n d e x e d c o l u m n s
i n t h e t a b l e .
F O R
C O L U M N S
c o l l e c t c o l u m n s t a t i s t i c s f o r t h e s p e c i f i e d
c o l u m n s .
F O R A L L
I N D E X E S
a l l i n d e x e s a s s o c i a t e d w i t h t h e t a b l e w i l l b e
a n a l y z e d .
S I Z E
s p e c i f i e s t h e m a x i m u m n u m b e r o f p a r t i t i o n s i n t h e
h i s t o g r a m . T h e d e f a u l t v a l u e i s 7 5 , m i n i m u m v a l u e
i s 1 , a n d m a x i m u m v a l u e i s 2 5 4 .
( 계 속 )
S t o r a g e A l l o c a t i o n 관 리 8 - 4 9
탄 약정보체계(운영자용) Oracle7Administration
8.19.1 참고:ANALYZE,SQL 명령-
Ⅲ
(계속)
D E L E T E S T A T I S T I C S 현재d a t a d i c t i o n a r y 안에저장되있는, 분석되객체에모든통계치( s t a t i s t i c s ) 를삭제( d e l e t e ) 한다. 대한V S A L I D A T E T R U C T U R E 분석된객체( T h e a n a l y z e d o b j e c t ) 의구조( s t r u c t u 유효하게만든다. 만일클러스터를분석할때이옵션을사면, 자동으로오라클은그클러스터의모든테이블들의구유효하게만든다. r e ) 를용하조를C A S C A D E 테이블또는클러스터와관련된모든인덱스들의구조를하게만든다. 유효L I S T C H A I N E D R O W S 분석되테이블또는클러스터의이주된행들과체인화된( m i g r a t e d a n d c h a i n e d r o w s ) 을구분( i d e n t i f y ) 한다인덱스를분석할때이옵션을사용하면안된다. 행들. I N T O 오라클7 이이주된행들과체인화된행들( m i g r a t e d c h a i n e d r o w s ) 의목록을나열한테이블을설정한다. s c h e m a 를생략하면, 오라클은목록테이블이우리가소유s c h e m a 안에있다고간주한다. 이구절을생략할경우, 오라클은C H A I N E D _ R O W S ' 을목이블의이름으로생각한다. 목록테이블은반듯이우l o c a l d a t a b a s e 안에있어야한다. a n d 하는록테리의
( C o l l e c t i n g S t a t i s t i c s ; 통계치수정하기) -인덱스, 테이블, 클러스터의데이터분포( d a t a d i s t r i b u t i o n ) 와물리적인저장매체의특성( p h y s i c a l s t o r a g e c h a r a c t e r i s t i c s ) 들을통계치s( t a t i s t i c s ) 를수정할수있고, 그들을d a t a d i c t i o n a r y 에저장할수있다. -[ C o m p u t i n g o r e s t i m a t i n g s t a t i s t i c s ] C o m p u t a t i o n 은언제나정확한값을제공한다, 그러나e s t i m a t i o n 보다오래걸린다. E s t i m a t i o n 은일반적으로c o m p u t a t i o n 보다매우빠르며비교적으로정확한결과를보여준다. -그렇게정확한값들이필요하지않을경우, C o m p u t a t i o n 보다는E s t i m a t i o n 을사용해라. 어떤통계치는우리의c o m p u t a t i o n 또는e s t i m a t i o n 의설정여부에관계없이언제나정확하게계산된다. 우리가e s t i m a t i o n 를설정했으나이것으로인해절약되는시간이극히미미한경우, 오라클은통계치를정확하게계산한다. 계( 속)
Storage Allocation 관리8 -50
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 . 1 참 고 : A N A L Y Z E , S Q L 명 령 - Ⅳ
( 계 속 )
- 만 일 d a t a d i c t i o n a r y 가 이 미 분 석 된 객 체 의 통 계 치 를 가 지 고 있
다 면 , 오 라 클 은 기 존 의 통 계 치 를 새 로 운 값 으 로 갱 신 한 다 .
- 통 계 치 ( s t a t i s t i c s ) 들 은 O r a c l e 7 o p t i m i z e r 에 의 해 사 용 되 어 분
석 된 객 체 로 접 근 하 는 S Q L 문 들 에 대 한 실 행 계 획 ( e x e c u t i o n
p l a n ) 을 결 정 하 는 데 도 움 을 준 다 . 이 같 은 통 계 치 들 은 이 같 은 문 들
을 사 용 하 는 응 용 프 로 그 램 개 발 자 에 게 유 용 할 수 있 다 .
- [ I n d e x 에 대 해 오 라 클 이 수 정 하 는 통 계 치 ]
인 덱 스 의 깊 이 ( d e p t o f t h e i n d e x ) , 그 것 의 r o o t b l o c k 에 서 그 것 의 l e a f
b l o c k s 까 지 *
l e a f b l o c k s 들 의 개 수
구 별 되 는 인 덱 스 값 들 ( d i s t i n c t i n d e x v a l u e s ) 의 개 수
인 덱 스 값 하 나 당 l e a f b l o c k s 들 의 평 균 개 수
인 덱 스 값 하 나 당 l e a f b l o c k s 들 의 평 균 개 수 ( 테 이 블 상 에 어 떤 한 i n d e x 의
경 우 )
c l u s t e r i n g f a c t o r ( h o w w e l l o r d e r e d a r e t h e r o w s a b o u t t h e
i n d e x e d v a l u e s )
※ * 표 시 가 된 통 계 치 는 무 조 건 정 확 하 게 계 산 되 는 통 계 치 이 다 .
※ I n d e x 의 통 계 치 들 ( s t a t i s t i c s ) d a t a d i c t i o n a r y v i e w s 인
U S E R _ I N D E X E S , A L L _ I N D E X E S , D B A _ I N D E X E S 에 나 타 난 다 .
- [ T a b l e 에 대 해 오 라 클 이 수 정 하 는 통 계 치 ]
행 들 의 개 수 ( n u m b e r o f r o w s )
현 재 d a t a 를 가 지 고 있 는 d a t a b l o c k s 들 의 개 수 *
한 번 도 사 용 되 지 않 은 테 이 블 들 에 할 당 된 d a t a b l o c k s 들 의 개 수 *
각 d a t a b l o c k 안 에 가 용 한 빈 공 간 ( a v a i l a b l e f r e e s p a c e ) 의 평 균 크 기 .
단 위 는 b y t e s 이 다 .
체 인 화 된 행 들 의 개 수 ( n u m b e r o f c h a i n e d r o w s )
행 길 이 의 평 균 ( 행 의 o v e r h e a d 포 함 )
※ * 표 시 가 된 통 계 치 는 무 조 건 정 확 하 게 계 산 되 는 통 계 치 이 다 .
※ T a b l e 의 통 계 치 들 ( s t a t i s t i c s ) d a t a d i c t i o n a r y v i e w s 인
U S E R _ T A B L E S , A L L _ T A B L E S , D B A _ T A B L E S 에 나 타 난 다 .
( 계 속 )
S t o r a g e A l l o c a t i o n 관 리 8 - 5 1
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 . 1 참 고 : A N A L Y Z E , S Q L 명 령 - Ⅴ
( 계 속 )
- [ C l u s t e r 에 대 해 서 오 라 클 이 수 정 하 는 통 계 치 ]
전 체 적 으 로 , 컬 룸 안 에 구 별 되 는 값 들 의 개 수 ( n u m b e r o f d i s t i n c t
v a l u e s i n t h e c o l u m n a s a w h o l e )
각 밴 드 안 에 최 대 값 과 최 소 값 ( m a x i m u m a n d m i n i m u m v a l u e s i n e a c h
b a n d )
C o l u m n s t a t i s t i c s c a n b e b a s e d o n t h e e n t i r e c o l u m n o r c a n u s e a
h i s t o g r a m . A h i s t o g r a m p a r t i t i o n s t h e v a l u e s i n t h e c o l u m n i n t o b a n d s , s o
t h a t a l l c o l u m n v a l u e s i n a b a n d f a l l w i t h i n t h e s a m e r a n g e I n s o m e c a s e s ,
i t i s u s e f u l t o s e e h o w m a n y v a l u e s f a l l i n v a r i o u s r a n g e s . O r a c l e ' s
h i s t o g r a m s a r e h e i g h t b a l a n c e d a s o p p o s e d t o w i d t h b a l a n c e d . T h i s m e a n s
t h a t t h e c o l u m n v a l u e s a r e d i v i d e d i n t o b a n d s s o t h a t e a c h b a n d c o n t a i n s
a p p r o x i m a t e l y t h e s a m e n u m b e r o f v a l u e s . T h e u s e f u l i n f o r m a t i o n t h e
h i s t o g r a m p r o v i d e s , t h e n , i s w h e r e i n t h e r a n g e o f v a l u e s t h e e n d p o i n t s
f a l l . W i d t h - b a l a n c e d h i s t o g r a m s , o n t h e o t h e r h a n d , d i v i d e t h e d a t a i n t o a
n u m b e r o f r a n g e s , a l l o f w h i c h a r e t h e s a m e s i z e , a n d t h e n c o u n t t h e n u m b e r
o f v a l u e s f a l l i n g i n t o e a c h r a n g e .
T h e s i z e p a r a m e t e r s p e c i f i e s h o w m a n y b a n d s t h e c o l u m n s h o u l d b e d i v i d e d
i n t o . A s i z e o f 1 t r e a t s t h e e n t i r e c o l u m n a s a s i n g l e b a n d , w h i c h i s
e q u i v a l e n t t o n o t u s i n g h i s t o g r a m s a t a l l .
W h e n t o u s e H i s t o g r a m s
F o r u n i f o r m l y d i s t r i b u t e d d a t a , t h e c o s t - b a s e d a p p r o a c h m a k e s f a i r l y
a c c u r a t e g u e s s e s a t t h e c o s t o f e x e c u t i n g a p a r t i c u l a r s t a t e m e n t . F o r
n o n - u n i f o r m l y d i s t r i b u t e d d a t a , O r a c l e a l l o w s y o u t o s t o r e h i s t o g r a m s
d e s c r i b i n g t h e d a t a d i s t r i b u t i o n o f a p a r t i c u l a r c o l u m n . T h e s e h i s t o g r a m s
a r e s t o r e d i n t h e d i c t i o n a r y a n d c a n b e u s e d b y t h e c o s t - b a s e d o p t i m i z e r .
S i n c e t h e y a r e p e r s i s t e n t o b j e c t s , t h e r e i s a m a i n t e n a n c e a n d s p a c e c o s t
f o r u s i n g h i s t o g r a m s . Y o u s h o u l d o n l y c o m p u t e h i s t o g r a m s f o r c o l u m n s t h a t
y o u k n o w h a v e h i g h l y - s k e w e d d a t a d i s t r i b u t i o n . A l s o , b e a w a r e t h a t
h i s t o g r a m s , a s w e l l a s a l l o p t i m i z e r s t a t i s t i c s , a r e s t a t i c . I f t h e d a t a
d i s t r i b u t i o n o f a c o l u m n c h a n g e s f r e q u e n t l y , y o u m u s t r e i s s u e t h e A N A L Y Z E
c o m m a n d t o r e c o m p u t e t h e h i s t o g r a m f o r t h a t c o l u m n .
H i s t o g r a m s a r e n o t u s e f u l f o r c o l u m n s w i t h t h e f o l l o w i n g c h a r a c t e r i s t i c s :
a l l p r e d i c a t e s o n t h e c o l u m n u s e b i n d v a r i a b l e s
t h e c o l u m n d a t a i s u n i f o r m l y d i s t r i b u t e d
t h e c o l u m n i s n o t u s e d i n W H E R E c l a u s e s o f q u e r i e s
t h e c o l u m n i s u n i q u e a n d i s u s e d o n l y w i t h e q u a l i t y p r e d i c a t e s
S t o r a g e A l l o c a t i o n 관 리 8 - 5 2
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 . 1 참 고 : A N A L Y Z E , S Q L 명 령 - Ⅵ
C r e a t e h i s t o g r a m s o n c o l u m n s t h a t a r e f r e q u e n t l y u s e d i n W H E R E c l a u s e s o f
q u e r i e s a n d h a v e a h i g h l y - s k e w e d d a t a d i s t r i b u t i o n . Y o u c r e a t e a h i s t o g r a m
b y u s i n g t h e A N A L Y Z E T A B L E o p t i o n o f t h i s c o m m a n d . F o r e x a m p l e , i f y o u w a n t
t o c r e a t e a 1 0 - b a n d h i s t o g r a m o n t h e S A L c o l u m n o f t h e E M P t a b l e , i s s u e t h e
f o l l o w i n g s t a t e m e n t :
A N A L Y Z E T A B L E e m p
C O M P U T E S T A T I S T I C S F O R C O L U M N S s a l S I Z E 1 0 ;
C o l u m n s t a t i s t i c s a p p e a r i n t h e d a t a d i c t i o n a r y v i e w s U S E R _ T A B _ C O L U M N S ,
A L L _ T A B _ C O L U M N S , a n d D B A _ T A B _ C O L U M N S . H i s t o g r a m s a p p e a r i n t h e d a t a
d i c t i o n a r y v i e w s U S E R _ H I S T O G R A M S , D B A _ H I S T O G R A M S , a n d A L L _ H I S T O G R A M S .
- [ C l u s t e r ]
F o r a n i n d e x e d c l u s t e r , O r a c l e 7 c o l l e c t s t h e a v e r a g e n u m b e r o f d a t a b l o c k s
t a k e n u p b y a s i n g l e c l u s t e r k e y v a l u e a n d a l l o f i t s
r o w s . F o r a h a s h c l u s t e r s , O r a c l e 7 c o l l e c t s t h e a v e r a g e n u m b e r o f d a t a
b l o c k s t a k e n u p b y a s i n g l e h a s h k e y v a l u e a n d a l l o f i t s
r o w s . T h e s e s t a t i s t i c s a p p e a r i n t h e d a t a d i c t i o n a r y v i e w s U S E R _ C L U S T E R S
a n d D B A _ C L U S T E R S .
E x a m p l e I
T h e f o l l o w i n g s t a t e m e n t e s t i m a t e s s t a t i s t i c s f o r t h e C U S T _ H I S T O R Y t a b l e
a n d a l l o f i t s i n d e x e s :
A N A L Y Z E T A B L E c u s t _ h i s t o r y E S T I M A T E S T A T I S T I C S
( D e l e t i n g S t a t i s t i c s )
W i t h t h e D E L E T E S T A T I S T I C S o p t i o n o f t h e A N A L Y Z E c o m m a n d , y o u c a n r e m o v e
e x i s t i n g s t a t i s t i c s a b o u t a n o b j e c t f r o m t h e d a t a d i c t i o n a r y . Y o u m a y w a n t
t o r e m o v e s t a t i s t i c s i f y o u n o l o n g e r w a n t t h e O r a c l e 7 o p t i m i z e r t o u s e
t h e m .
W h e n y o u u s e t h e D E L E T E S T A T I S T I C S o p t i o n o n a t a b l e , O r a c l e 7 a l s o
a u t o m a t i c a l l y r e m o v e s s t a t i s t i c s f o r a l l t h e t a b l e ' s i n d e x e s . W h e n y o u u s e
t h e D E L E T E S T A T I S T I C S o p t i o n o n a c l u s t e r , O r a c l e 7 a l s o a u t o m a t i c a l l y
r e m o v e s s t a t i s t i c s f o r a l l t h e c l u s t e r ' s t a b l e s a n d a l l t h e i r i n d e x e s ,
i n c l u d i n g t h e c l u s t e r i n d e x .
E x a m p l e I I
T h e f o l l o w i n g s t a t e m e n t d e l e t e s s t a t i s t i c s a b o u t t h e C U S T _ H I S T O R Y t a b l e
a n d a l l i t s i n d e x e s f r o m t h e d a t a d i c t i o n a r y :
A N A L Y Z E T A B L E c u s t _ h i s t o r y D E L E T E S T A T I S T I C S
S t o r a g e A l l o c a t i o n 관 리 8 - 5 3
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 . 1 참 고 : A N A L Y Z E , S Q L 명 령 - Ⅶ
( V a l i d a t i n g S t r u c t u r e s )
W i t h t h e V A L I D A T E S T R U C T U R E o p t i o n o f t h e A N A L Y Z E c o m m a n d , y o u c a n v e r i f y
t h e i n t e g r i t y o f t h e s t r u c t u r e o f a n i n d e x , t a b l e , o r c l u s t e r . I f O r a c l e 7
s u c c e s s f u l l y v a l i d a t e s t h e s t r u c t u r e , a m e s s a g e c o n f i r m i n g i t s v a l i d a t i o n
i s r e t u r n e d t o y o u . I f O r a c l e 7 e n c o u n t e r s c o r r u p t i o n i n t h e s t r u c t u r e o f t h e
o b j e c t , a n e r r o r m e s s a g e i s r e t u r n e d t o y o u . I n t h i s c a s e , d r o p a n d r e c r e a t e
t h e o b j e c t .
S i n c e t h e v a l i d a t i n g t h e s t r u c t u r e o f a o b j e c t p r e v e n t s S E L E C T , I N S E R T ,
U P D A T E , a n d D E L E T E s t a t e m e n t s f r o m c o n c u r r e n t l y a c c e s s i n g t h e o b j e c t , d o n o t
u s e t h i s o p t i o n o n t h e t a b l e s , c l u s t e r s , a n d i n d e x e s o f y o u r p r o d u c t i o n
a p p l i c a t i o n s d u r i n g p e r i o d s o f h i g h d a t a b a s e a c t i v i t y .
- [ I n d e x e s ]
F o r a n i n d e x , t h e V A L I D A T E S T R U C T U R E o p t i o n v e r i f i e s t h e i n t e g r i t y o f e a c h
d a t a b l o c k i n t h e i n d e x a n d c h e c k s f o r b l o c k c o r r u p t i o n . N o t e t h a t t h i s
o p t i o n d o e s n o t c o n f i r m t h a t e a c h r o w i n t h e t a b l e h a s a n i n d e x e n t r y o r
t h a t e a c h i n d e x e n t r y p o i n t s t o a r o w i n t h e t a b l e . Y o u c a n p e r f o r m t h e s e
o p e r a t i o n s b y v a l i d a t i n g t h e s t r u c t u r e o f t h e t a b l e .
W h e n y o u u s e t h e V A L I D A T E S T R U C T U R E o p t i o n o n a n i n d e x , O r a c l e 7 a l s o
c o l l e c t s s t a t i s t i c s a b o u t t h e i n d e x a n d s t o r e s t h e m i n t h e d a t a
d i c t i o n a r y v i e w I N D E X _ S T A T S . O r a c l e 7 o v e r w r i t e s a n y e x i s t i n g s t a t i s t i c s
a b o u t p r e v i o u s l y v a l i d a t e d i n d e x e s . A t a n y t i m e , I N D E X _ S T A T S c a n c o n t a i n
o n l y o n e r o w d e s c r i b i n g o n l y o n e i n d e x . T h e I N D E X _ S T A T S v i e w i s d e s c r i b e d
i n t h e O r a c l e 7 S e r v e r R e f e r e n c e .
T h e s t a t i s t i c s c o l l e c t e d b y t h i s o p t i o n a r e n o t u s e d b y t h e O r a c l e 7
o p t i m i z e r . D o n o t c o n f u s e t h e s e s t a t i s t i c s w i t h t h e s t a t i s t i c s c o l l e c t e d
b y t h e C O M P U T E S T A T I S T I C S a n d E S T I M A T E S T A T I S T I C S o p t i o n s .
E x a m p l e I I I
T h e f o l l o w i n g s t a t e m e n t v a l i d a t e s t h e s t r u c t u r e o f t h e i n d e x P A R T S _ I N D E X :
A N A L Y Z E I N D E X p a r t s _ i n d e x V A L I D A T E S T R U C T U R E
S t o r a g e A l l o c a t i o n 관 리 8 - 5 4
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 . 1 참 고 : A N A L Y Z E , S Q L 명 령 - Ⅷ
- [ T a b l e s ]
F o r a t a b l e , t h e V A L I D A T E S T R U C T U R E o p t i o n v e r i f i e s t h e i n t e g r i t y o f e a c h
o f t h e t a b l e ' s d a t a b l o c k s a n d r o w s . Y o u c a n u s e t h e C A S C A D E o p t i o n t o a l s o
v a l i d a t e t h e s t r u c t u r e o f a l l i n d e x e s o n t h e t a b l e a n d t o p e r f o r m
c r o s s - r e f e r e n c i n g b e t w e e n t h e t a b l e a n d e a c h o f i t s i n d e x e s . F o r e a c h
i n d e x , t h e c r o s s - r e f e r e n c i n g i n v o l v e s t h e f o l l o w i n g v a l i d a t i o n s :
E a c h v a l u e o f t h e t a b l e s ' i n d e x e d c o l u m n m u s t m a t c h t h e i n d e x e d c o l u m n
v a l u e o f a n i n d e x e n t r y . T h e m a t c h i n g i n d e x e n t r y m u s t a l s o i d e n t i f y
t h e r o w i n t h e t a b l e b y t h e c o r r e c t R O W I D .
E a c h e n t r y i n t h e i n d e x i d e n t i f i e s a r o w i n t h e t a b l e . T h e i n d e x e d
c o l u m n v a l u e i n t h e i n d e x e n t r y m u s t m a t c h t h a t o f t h e i d e n t i f i e d r o w .
E x a m p l e I V
T h e f o l l o w i n g s t a t e m e n t a n a l y z e s t h e E M P t a b l e a n d a l l o f i t s i n d e x e s :
A N A L Y Z E T A B L E e m p V A L I D A T E S T R U C T U R E C A S C A D E
- [ C l u s t e r ]
F o r a c l u s t e r , t h e V A L I D A T E S T R U C T U R E o p t i o n v e r i f i e s t h e i n t e g r i t y o f
e a c h r o w i n t h e c l u s t e r a n d a u t o m a t i c a l l y v a l i d a t e s t h e s t r u c t u r e o f e a c h
o f t h e c l u s t e r ' s t a b l e s . Y o u c a n u s e t h e C A S C A D E o p t i o n t o a l s o v a l i d a t e
t h e s t r u c t u r e o f a l l i n d e x e s o n t h e c l u s t e r ' s t a b l e s , i n c l u d i n g t h e
c l u s t e r i n d e x .
E x a m p l e V
T h e f o l l o w i n g s t a t e m e n t a n a l y z e s t h e O R D E R _ C U S T S c l u s t e r , a l l o f i t s
t a b l e s , a n d a l l o f t h e i r i n d e x e s , i n c l u d i n g t h e c l u s t e r i n d e x :
A N A L Y Z E C L U S T E R o r d e r _ c u s t s V A L I D A T E S T R U C T U R E C A S C A D E
S t o r a g e A l l o c a t i o n 관 리 8 - 5 5
탄 약 정 보 체 계 ( 운 영 자 용 ) O r a c l e 7 A d m i n i s t r a t i o n
8 . 1 9 . 1 참 고 : A N A L Y Z E , S Q L 명 령 - Ⅸ
( L i s t i n g c h a i n e d r o w s )
W i t h t h e L I S T o p t i o n o f t h e A N A L Y Z E c o m m a n d , y o u c a n c o l l e c t i n f o r m a t i o n
a b o u t t h e m i g r a t e d a n d c h a i n e d r o w s i n a t a b l e o r c l u s t e r . A m i g r a t e d r o w i s
o n e t h a t h a s b e e n m o v e d f r o m o n e d a t a b l o c k t o a n o t h e r . F o r e x a m p l e , O r a c l e 7
m i g r a t e s a r o w i n a c l u s t e r i f i t s c l u s t e r k e y v a l u e i s u p d a t e d . A c h a i n e d
r o w i s o n e t h a t i s c o n t a i n e d i n m o r e t h a n o n e d a t a b l o c k . F o r e x a m p l e ,
O r a c l e 7 c h a i n s a r o w o f a t a b l e o r c l u s t e r i f t h e r o w i s t o o l o n g t o f i t i n a
s i n g l e d a t a b l o c k . M i g r a t e d a n d c h a i n e d r o w s m a y c a u s e e x c e s s i v e I / O . Y o u m a y
w a n t t o i d e n t i f y s u c h r o w s t o e l i m i n a t e t h e m . F o r i n f o r m a t i o n o n e l i m i n a t i n g
m i g r a t e d a n d c h a i n e d r o w s , s e e O r a c l e 7 S e r v e r T u n i n g .
Y o u c a n u s e t h e I N T O c l a u s e t o s p e c i f y a n o u t p u t t a b l e i n t o w h i c h O r a c l e 7
p l a c e s t h i s i n f o r m a t i o n . T h e d e f i n i t i o n o f a s a m p l e o u t p u t t a b l e
C H A I N E D _ R O W S i s p r o v i d e d i n a S Q L s c r i p t a v a i l a b l e o n y o u r d i s t r i b u t i o n
m e d i a . Y o u r l i s t t a b l e m u s t h a v e t h e s a m e c o l u m n n a m e s , t y p e s , a n d s i z e s a s
t h e C H A I N E D _ R O W S t a b l e . O n m a n y o p e r a t i n g s y s t e m s , t h e n a m e o f t h i s s c r i p t
i s U T L C H A I N . S Q L . T h e a c t u a l n a m e a n d l o c a t i o n o f t h i s s c r i p t m a y v a r y
d e p e n d i n g o n y o u r o p e r a t i n g s y s t e m .
E x a m p l e V I
T h e f o l l o w i n g s t a t e m e n t c o l l e c t s i n f o r m a t i o n a b o u t a l l t h e c h a i n e d r o w s o f
t h e t a b l e O R D E R _ H I S T :
A N A L Y Z E T A B L E o r d e r _ h i s t L I S T C H A I N E D R O W S I N T O c r
T h e p r e c e d i n g s t a t e m e n t p l a c e s t h e i n f o r m a t i o n i n t o t h e t a b l e C R .
Y o u c a n t h e n e x a m i n e t h e r o w s w i t h t h i s q u e r y :
S E L E C T * F R O M c r
O W N E R _ N A M E T A B L E _ N A M E C L U S T E R _ N A M E H E A D _ R O W I D T I M E S T A M P
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
S C O T T O R D E R _ H I S T 0 0 0 0 3 4 6 A . 0 0 0 C . 0 0 0 3 1 5 - M A R - 9 3
S t o r a g e A l l o c a t i o n 관 리 8 - 5 6