DBMS SPACE.SPACE USAGE

EXEM Knowledge Base

Jump to: navigation, 찾기

[편집] 개요

Segment의 공간 사용 정보를 얻을 수 있다. ASSM을 사용하는 환경에서 주로 사용된다.

[편집] 예제

-- ASSM을 쓰는 환경에서 Freeness별 블록 수를 구한다.
SQL> set serveroutput on
SQL> 
declare
         v_unformatted_blocks number;
         v_unformatted_bytes number;
         v_fs1_blocks number;
         v_fs1_bytes number;
         v_fs2_blocks number;
         v_fs2_bytes number;
         v_fs3_blocks number;
         v_fs3_bytes number;
        v_fs4_blocks number;
        v_fs4_bytes number;
        v_full_blocks number;
        v_full_bytes number;
    begin
      dbms_space.space_usage ('&username', '&segment_name', '&segment_type', 
      v_unformatted_blocks,
      v_unformatted_bytes, v_fs1_blocks, v_fs1_bytes, v_fs2_blocks, v_fs2_bytes,
      v_fs3_blocks, v_fs3_bytes, v_fs4_blocks, v_fs4_bytes, v_full_blocks, v_full_bytes);
      dbms_output.put_line('Unformatted Blocks = '||v_unformatted_blocks);
      dbms_output.put_line('FS1 Blocks       = '||v_fs1_blocks);
      dbms_output.put_line('FS2 Blocks       = '||v_fs2_blocks);
      dbms_output.put_line('FS3 Blocks       = '||v_fs3_blocks);
      dbms_output.put_line('FS4 Blocks       = '||v_fs4_blocks);
      dbms_output.put_line('Full Blocks       = '||v_full_blocks);
end;
/

-- FML을 사용하는 환경에서는 다음과 같이 dbms_space.free_blocks를 사용한다.
 SQL> 
 DECLARE
   free_blks NUMBER;
 BEGIN
   dbms_space.free_blocks('&owner','&segment_name,'&segment_type',0,free_blks);
   dbms_output.put_line('Free Blocks: ' || TO_CHAR(free_blks));
END;
/