DBMS 2
DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!
sp_iqcheckdb 'mode target [….] [resource resource-percent] '; 데이터베이스의 모든 페이지를 디스크에서 메모리로 읽어 데이터베이스 할당정보의 일치성 오류(corrupt) 여부를 점검하며 mode 옵션에 따라 복구도 가능합니다. 수행된 결과는 저장되며 sp_iqdbstatistics의 실행에 의해 마지막으로 저장된 결과를 다시 볼 수 있습니다. 이 작업은 매우 많은 리소스와 시간을 소비하므로 실행하기 전에 충분히 숙지 하시고 사용하기 바랍니다. 정확한 결과를 얻기 위해서는 checkpoint를 먼저 실행하고 실행하십시오. Mode별 점검되는 오류 및 속도는 아래 표와 같으니 실행할 때 주의 바랍니다. 예) sp_iqcheckoptions 사용자별, 옵션별 기본 값과 변경 값을 비교하여 옵션별, 사용자별로 정렬해서 다음과 같은 정보를 보여줍니다. 예) sp_iqcolumn [table-name ] , [table-owner]; 시스템 테이블이 아닌 특정한 IQ영역의 사용자 테이블에 대한 다음과 같은 컬럼 정보를 출력합니다. 만약 파라미터가 생략되면 기본 값이 입력 파라미터로 전송됩니다. sp_iqconnection [conn-handle]; 현재 IQ에 접속중인(혹은 특정한) 사용자에 대한 정보를 다음과 같이 출력합니다. 시스템 테이블이 아닌 특정한 사용자 테이블에 대한 참조 무결성 제약조건(Referential Integrity constraint, 이하 RI) 정보를 다음과 같이 출력합니다. sp_iqcontext [conn-handle]; 현재 IQ에서 실행중인 명령어, 접속중인 sp_iqdbsize ; 현재 database에 대한 크기 정보를 다음과 같이 출력하지만 많은 리소스 sp_iqdbspace [dbspace-name]; 각 dbspace에 대한 크기 정보를 다음과 같이 출력합니다. sp_iqdbspace [dbspace-name]; 각 dbspace에 대한 크기 정보를 다음과 같이 출력합니다. sp_iqestspace table-name, #-of-rows, iq-page-size; 예상 데이터 건수의 데이터가 입력된다고 가정하고 대상 테이블의 크기를 예측합니다. FP 인덱스를 포함하여 대상 테이블이 가지고 있는 모든 인덱스 정보를 다음과 같이 출력 합니다. sp_iqindexfragmentation ' table table-name [(index index-name)] '; 인덱스 내부 구조인 btree, bitmap, garray의 fragmentation에 대한 정보를 아래와 같이 출력합니다. sp_iqindexinfo 'database | [ table table-name | index index-name ]'; 대상 object가 사용중인 dbspace와 그 크기 등을 다음과 같이 출력합니다. sp_iqindexsize [ [table-owner.] table-name.] index-name ; 특정한 인덱스의 크기를 다음과 같이 출력합니다. sp_iqlocks [conn-handle,] [ [owner.] table-name,] [max-locks,] [sort-order] ; sp_iqrebuildindex 'table-name','column column-name [ count ] | index index-name';; 특정한 컬럼에 대한 FP 인덱스를 재생성 하거나 특정한 인덱스를 재생성 합니다. FP인덱스를 재생성하는 경우에 현재 인덱스가 1byte FP 인 경우는 대상 컬럼의 카디날리티 정보에 따라 1byte FP만 가능합니다. 2byte FP인 경우는 대상 컬럼의 카디날리티에 따라 1byte FP 혹은 2byte FP로 달라질 수 있습니다. sp_iqrelocate ' database | table table-name | index index-name '; relocate 모드 상태인 dbspace에 존재하는 대상 테이블 혹은 인덱스를 readwrite 모드의 다른 dbspace로 이동 합니다. 단, Main Store만 가능합니다. sp_iqrelocate 'database'; sp_iqspaceinfo ; Object(table, index)별로 사용중인 dbspace의 block 수 정보를 다음과 같이 출력하지 만 많은 리소스, 시간이 소요되므로 주의하시기 바랍니다 Tip) 테이블별로 디스크 사용 정보 보기 sp_iqspaceused out mainKB, out mainKBUsed, out tempKB, out tempKBUsed ; Main store와 Temp store의 전체 크기와 현재 사용중인 크기를 아래와 같이 Kbyte 형태의 output 파라미터 형태로 넘겨줍니다. sp_iqstatus ; 현재 데이터베이스의 다음과 같은 상태를 출력합니다 특정 테이블에 대한 다음과 같은 상태를 출력합니다 sp_iqtablesize [table-owner.] table-name ; 특정한 테이블의 크기를 다음과 같이 출력합니다. sp_iqtransaction ; 현재의 트랜잭션과 버전에 대한 정보를 다음과 같이 출력합니다. 특정 뷰에 대한 다음과 같은 상태를 출력합니다System stored procedure
System stored procedure
sp_iqcheckdb
syntax
sp_iqcheckoptions
syntax
sp_iqcolumn
syntax
예)
sp_iqconnection
syntax
예)
sp_iqconstraint
syntax
sp_iqconstraint [table_name = ' table-name' ] , [column_name = ' column-name' ],
[table_owner = ' table-owner' ];
예)
sp_iqcontext
syntax
예)
sp_iqdbsize
syntax
예)
sp_iqdbspace
syntax
예)
sp_iqdbspaceinfo
syntax
예)
sp_iqestspace
syntax
예)
sp_iqindex
syntax
sp_iqindex [table_name = ' table-name' ] , [column_name = ' column-name' ],
[table_owner = ' table-owner' ];
예)
sp_iqindexfragmentation
syntax
예)
sp_iqindexinfo
syntax
예)
sp_iqindexsize
syntax
예)
sp_iqlocks
syntax
예)
sp_iqrebuildindex
syntax
예)
// employee 테이블 emp_lname 컬럼의 FP 인덱스를 재생성
// Minimize_Storage 값이 On인 경우 : FFP, FFFP, Flat FP 순으로 재생성 시도
// Minimize_Storage 값이 Off인 경우 : 현재 설정된 FP 종류에 따라 같은 인덱스 재생성
sp_iqrebuildindex 'employee', 'index emp_lname_LF';
// employee 테이블 emp_lname_LF 인덱스를 재생성
sp_iqrebuildindex 'employee', 'column emp_lname 20';
// employee 테이블 emp_lname 컬럼의 FP 인덱스를 IQ UNIQUE(20)으로 재생성
sp_iqrelocate
syntax
예)
sp_iqspaceinfo
syntax
sp_iqspaceinfo
예)
sp_iqspaceinfo
result ( Name varchar(128), NBlocks unsigned bigint, dbspace_name char(128))
begin
declare end_of_cursor exception for SQLSTATE '02000';
declare objname varchar(128);
declare numblocks bigint;
declare db_space varchar(128);
declare iqspace cursor for call sp_iqspaceinfo();
declare local temporary table iq_spaceinfo_table_temp (
Name varchar(128) null,
Blocks unsigned bigint null,
dbspacename varchar(128) null
) in SYSTEM on commit preserve rows;
open iqspace;
iqspaceloop:
LOOP
fetch next iqspace into objname, numblocks, db_space;
if SQLSTATE = end_of_cursor THEN
leave iqspaceloop;
end if;
insert into iq_spaceinfo_table_temp values ( objname, numblocks, db_space);
END LOOP iqspaceloop;
close iqspace;
select * from iq_spaceinfo_table_temp
where Name = tablename_param or
Name like tablename_param or
Name like tablename_param || '.%'
order by Name;
drop table iq_spaceinfo_table_temp;
end
sp_iqspaceused
syntax
sp_iqspaceused
예)
DECLARE mu UNSIGNED BIGINT;
DECLARE tt UNSIGNED BIGINT;
DECLARE tu UNSIGNED BIGINT;
CALL sp_iqspaceused(mt,mu,tt,tu);
SELECT
cast(cast(mt/1024 as unsigned bigint) as varchar(10)) || ' MB' as MainStore,
cast(cast(mu/1024 as unsigned bigint) as varchar(10)) || ' MB' as MainUsed,
cast(cast(mu*100/mt as numeric(4,1)) as varchar(10)) || '%' as MainUsedRatio,
cast(cast(tt/1024 as unsigned bigint) as varchar(10)) || ' MB' as TempStore,
cast(cast(tu/1024 as unsigned bigint) as varchar(10)) || ' MB' as TempUsed,
cast(cast(tu*100/tt as numeric(4,1)) as varchar(10)) || '%' as TempUsedRatio;
END
sp_iqspaceused
예)
sp_iqstatus
syntax
sp_iqstatus
예)
sp_iqtable
syntax
sp_iqtable [table_name = ' table-name' ] , [table_owner = ' table-owner' ],
[table_type = ' SYSTEM | TEMP | VIEW | ALL | IQ ' ];
예)
sp_iqtablesize
syntax
예)
sp_iqtransaction
syntax
참고
예)
sp_iqview
syntax
sp_iqview [view_name = ' view-name' ] , [view_owner = ' view-owner' ],
[view_type = ' SYSTEM | ALL | IQ' ];
예)