본문 바로가기
DB/Altibase

(DB) 알티베이스(Altibase) 테이블 스페이스 쿼리

by 미니몬 2023. 8. 18.

목차

    728x90
    반응형

    이번 게시물 에서는 Altibase 에서 사용되는 테이블 스페이스 관리 쿼리문에 대해 살펴보겠습니다.

     

     

    Altibase 6.1 ~ 7.1 버전에서 사용되며 일부 버전에서 쿼리문이 조금 달라 질 수 있음을 알려드립니다.

     

     

    • sys 계정으로 접속 후 출력 화면 설정
    $ isql -u sys -p manager
    
    iSQL> SET LINESIZE 1024;
    iSQL> SET COLSIZE 20;

     

     

    • 데이터 베이스 유저 목록 조회
    iSQL> select * from system_.sys_users_;

     

     

    • 특정 유저의 테이블 조회 - [user_name] 부분에 유저명 기입
    select
    user_name , table_name
    from system_.sys_tables_ a,system_.sys_users_ b
    where b.user_name = '[user_name]'
    and table_type = 'T'
    and a.user_id = b.user_id;

     

     

    • dbf 파일 조회
    SELECT b.name tbs_name, a.id 'FILE#', a.name datafile_name,
                 currsize*8/1024 'ALLOC(M)', round(case2(a.maxsize=0, currsize, a.maxsize)*8/1024) 'MAX(M)',
                 decode(autoextend, 0, 'OFF', 'ON') 'AUTOEXTEND'
          FROM v$datafiles a, v$tablespaces b WHERE b.id = a.spaceid
          ORDER BY b.name, a.id;

     

     

    • dbf 파일 추가
      'TBS_NAME' : 테이블 스페이스명
      '/PATH/FILE_NAME.dbf' : dbf 파일 위치 및 파일명
      'size' : 파일 생성 크기 GB, MB, KB 단위 지정 가능. (Maxsize 32G)
      'autoextend' : ON - 자동 증감(maxsize, next 값 지정필요) / OFF - 고정사이즈
    ### AUTOEXTEND 미사용
    alter tablespace TBS_NAME add datafile '/PATH/FILE_NAME.dbf' size X[G/M/K] autoextend off;
    
    ### AUTOEXTEND 사용
    alter tablespace TBS_NAME add datafile '/PATH/FILE_NAME.dbf' autoextend on next X[G/M/K] MAXSIZE X[G/M/K];

     

     

    • dbf 파일 삭제
      'TBS_NAME' : 테이블 스페이스명
      '/PATH/FILE_NAME.dbf' : dbf 파일 위치 및 파일명
    alter tablespace TBS_NAME drop datafile '/PATH/FILE_NAME.dbf';

     

     

    • dbf 파일 변경
    alter tablespace TBS_NAME alter datafile '/PATH/FILE_NAME.dbf' size X[G/M/K];

     

     

    • 테이블 스페이스 사용률 조회
    SELECT NAME TBS_NAME                                                                                                                                    
         , TO_CHAR((D.MAX * PAGE_SIZE / 1024 /1024), '999,999,999') 'MAX(M)'                                                                                
         , TO_CHAR((TOTAL_PAGE_COUNT * PAGE_SIZE)/1024/1024, '999,999,999') 'TOTAL(M)'                                                                      
         , DECODE(TYPE, 7, TO_CHAR((U.TOTAL_EXT_CNT*PROP.EXTENT_SIZE)/1024/1024, '999,999,999')
                         , TO_CHAR((ALLOCATED_PAGE_COUNT * PAGE_SIZE)/1024/1024, '999,999,999')) 'ALLOC(M)'                                                 
         , DECODE(TYPE, 3, TO_CHAR(NVL(DS.USED, 0)/1024/1024, '999,999,999'), 
                        4, TO_CHAR(NVL(DS.USED, 0)/1024/1024, '999,999,999'),
                        7, TO_CHAR(((U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE)/1024/1024, '999,999,999')
                         , LPAD('-', 12))'USED(M)'                                                                                                          
         , DECODE(TYPE, 7, TO_CHAR((((U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE)/(D.MAX*PAGE_SIZE))*100, '99.99'),
                        3, TO_CHAR(NVL(DS.USED, 0)/(D.MAX*PAGE_SIZE)* 100, '99.99'),
                        4, TO_CHAR(NVL(DS.USED, 0)/(D.MAX*PAGE_SIZE)* 100, '99.99')
                         , TO_CHAR((ALLOCATED_PAGE_COUNT/D.MAX) * 100, '99.99')) 'USAGE(%)'                                                                                            
         , D.AUTOEXTEND
      FROM V$TABLESPACES T LEFT OUTER JOIN(SELECT SPACE_ID , SUM(TOTAL_USED_SIZE) USED
                                             FROM X$SEGMENT
                                            GROUP BY SPACE_ID) DS ON DS.SPACE_ID = T.ID
         , (SELECT SPACEID
                 , SUM(DECODE(MAXSIZE, 0, CURRSIZE, MAXSIZE)) AS MAX
                 , DECODE(MAX(AUTOEXTEND), 1, 'ON', 'OFF') 'AUTOEXTEND'
              FROM V$DATAFILES
             GROUP BY SPACEID ) D
         , V$DISK_UNDO_USAGE U
         , (SELECT VALUE1 EXTENT_SIZE
              FROM V$PROPERTY
             WHERE NAME = 'SYS_UNDO_TBS_EXTENT_SIZE') PROP
     WHERE T.ID = D.SPACEID ;

     

     

    • 디스크 DB 테이블 사용량
    SELECT USER_NAME table_owner,
           A.TABLE_NAME table_name,
           ROUND((B.DISK_PAGE_CNT*8*1024)/1024/1024) 'allocate(M)',
           'DISK' as TYPE
      FROM SYSTEM_.SYS_TABLES_ A,
           V$DISKTBL_INFO B,
           SYSTEM_.SYS_USERS_ C
     WHERE A.TABLE_OID = B.TABLE_OID
       AND A.USER_ID = C.USER_ID
       AND C.USER_ID <> 1
       AND TABLE_TYPE = 'T';

     

     

    • 메모리 DB 테이블 사용량 조회
    SELECT USER_NAME table_owner, TABLE_NAME table_name, ROUND((FIXED_ALLOC_MEM + VAR_ALLOC_MEM)/1024/1024 ) 'allocate(M)', 'MEMORY' as TYPE
    FROM SYSTEM_.SYS_TABLES_ A, SYSTEM_.SYS_USERS_ B,
         V$MEMTBL_INFO C
    WHERE A.USER_ID = B.USER_ID
      AND A.TABLE_OID = C.TABLE_OID
      AND B.USER_ID <> 1
    AND TABLE_TYPE = 'T';

     

    728x90
    반응형