2014년 12월 18일 목요일

free block 관리[오라클자바커뮤니티/빅데이터/오라클/PLSQL/SQL쿼리/SQL튜닝실무교육/SQL기초교육]

free block 관리 

일반적으로 BLOCK의 free space에 관한 정보를 보기 위해 dbms_space 패키지를 주로 이용 했습니다. 그러나 9i의 auto segment space 관리를 이용한다면 dbms_space 패키지의 free_block 프로시저는 오류를 리턴 할 것 입니다.( freelists를 사용하지 않아서 … ) 

9i 부터는 dbms_space.space_usage 프러시저를 새로 추가하여 자동 시그먼트 관리에서의 segment에 대한 free space를 확인 하도록 하고 있습니다. 

--------------------------------------------------- 
SCOTT으로 로그인 후 다음과 같이 테이블을 만듭니다. 
--------------------------------------------------- 



create table test ( 
A varchar2(1000) 

pctused 60 
 pctfree 20 
 initrans 5 
 maxtrans 20 
 storage ( 
    initial 10k 
    next 10k 
  minextents 2 
  maxextents 3 
  pctincrease 50 
  freelists 3 

tablespace autospace 

------------------------------------------ 
SYS계정에서 다음을 실행 시켜 블럭을 확인 합니다. 
------------------------------------------ 



SQL> var unfbs number 
SQL> var unfbt number 
SQL> var fs1bs number 
SQL> var fs1bt number 
SQL> var fs2bs number 
SQL> var fs2bt number 
SQL> var fs3bs number 
SQL> var fs3bt number 
SQL> var fs4bs number 
SQL> var fs4bt number 
SQL> var fbs number 
SQL> var fbt number 
SQL> var fbt number 

SQL> print unfbs unfbt fbs fbt 

    UNFBS 
---------- 
        0 


    UNFBT 
---------- 
        0 


      FBS 
---------- 
        0 


      FBT 
---------- 
        0 

SQL> print fs1bs fs1bt fs2bs fs2bt fs3bs fs3bt fs4bs fs4bt 

    FS1BS 
---------- 
        0 


    FS1BT 
---------- 
        0 


    FS2BS 
---------- 
        0 


    FS2BT 
---------- 
        0 


    FS3BS 
---------- 
        0 


    FS3BT 
---------- 
        0 


    FS4BS 
---------- 
        0 


    FS4BT 
---------- 
        0 


모두 0 임,,,, 데이터가 한 건도 없으니... 

이젠 데이터를 넣습니다. 


---------------------- 
SCOTT 계정 에서 
----------------------- 

SQL> insert into test values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); 

1 개의 행이 만들어졌습니다. 

SQL> commit; 

커밋이 완료되었습니다. 

위의 insert를 아래 카운트 수 정도까지 반복 합니다. 


SQL> select count(*) from test; 

  COUNT(*) 
---------- 
      274 


----------------------------- 
SYS 계정에서 블록의 사용을 확인 
----------------------------- 

SQL>    exec dbms_space.space_usage('SCOTT','TEST','TABLE', :unfbs, :unfbt, :f 
s1bs, :fs1bt, :fs2bs, :fs2bt, :fs3bs, :fs3bt, :fs4bs, :fs4bt, :fbs, :fbt) 

PL/SQL 처리가 정상적으로 완료되었습니다. 

SQL> print unfbs unfbt fbs fbt 

    UNFBS 
---------- 
        0 


    UNFBT 
---------- 
        0 


      FBS 
---------- 
        21 


      FBT 
---------- 
    172032 


insert가 불가능 한 블록의 수가 21개 이며 그 사이즈는 172032 byte라는 의미(pct_free를 넘어선 블록들의 수가 21이라는 의미) 

SQL> print fs1bs fs1bt fs2bs fs2bt fs3bs fs3bt fs4bs fs4bt 

    FS1BS 
---------- 
        0 


    FS1BT 
---------- 
        0 


    FS2BS 
---------- 
        0 


    FS2BT 
---------- 
        0 


    FS3BS 
---------- 
        0 


    FS3BT 
---------- 
        0 


    FS4BS 
---------- 
        5 


    FS4BT 
---------- 
    40960 



fs1은 0~25%, fs2는 25~50%, fs3는 50~75%, fs4는 75% ~ 100% free space를 가지고 block 의 수와 크기를 보여 줍니다. 현재 75~100%가 비어 있는 블록은 5개 있으며 그사이즈는 40960 이라는 의미 

참고로 알아둘 것은 … 

위 예의 경우 데이터를 가득 넣었기 때문에 많은 불록들이 사용되어 pct_free가 20%가 된 블록이 많이 있을 것이다. 그런데 0~25%가 0이라니(fs1bs 값)… 

그 이유는 pct_free를 넘어선 블록들은 fs1이건 fs2건 그 대상에서 제외하므로 그렇습니다. 즉 이런 것들은 full 상태가 되는 것입니다. 


 [100%환급,실무전문]SQL/빅데이터/자바/스프링/웹퍼블리싱/안드…오라클자바…12-272893
 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육…오라클자바…12-112105
53 [평일100%환급7건]웹퍼블리싱,자바&JSP,안드로이드,C#닷넷,SQL기… 오라클자바…03-151974
52 [주말]C#,ASP.NET마스터 오라클자바…01-312106
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-313067
50 [주말주간]자바&웹,jQUERY,스프링프레임워크,마이바티스 오라클자바…01-311623
49 [평일주간/야간,주말주간/야간]Spring,MyBatis,Hibernate개발자… 오라클자바…01-191947
48 [평일주간/야간,주말주간/야간]안드로이드개발자과정(Adnroid 교… 오라클자바…01-111814
47 [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… 오라클자바…01-032431
46 [100%환급,실무전문]SQL/빅데이터/자바/스프링/웹퍼블리싱/안드… 오라클자바…12-272893
45 [주말야간]개발자를위한PLSQL,SQL튜닝,힌트(토/일) 오라클자바…12-192026
44 [평일주간/야간,주말주간/야간]웹퍼블리싱 마스터(HTML5,CSS3,jQ… 오라클자바…12-141996
43 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… 오라클자바…12-112105
42 [주말야간]JAVA,JSP,Spring,PLSQL,힌트,웹퍼블리싱,안드로이드,… 오라클자바…12-091637
41 [평일야간,주말야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011862
40 [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… 오라클자바…12-012110
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011509

댓글 없음:

댓글 쓰기