본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

GLOBAL TEMP TABLE(GTT) 을 이용한 Table row count 검증 방법

by 3604 2025. 8. 14.
728x90

GLOBAL TEMP TABLE 을 이용한 Table row count 검증 방법

문서 유형  기술 정보
분야  마이그레이션
키워드 검증 이관
적용 제품 버전 6FS07PS 7FS02PS
 
 
 

개요

Oracle To Tibero 이관 또는 Tibero 6에서 Tibero 7으로 업그레이드 한 후, 대상 테이블의 row 수가 이관 전후로 정확히 일치하는지 검증해야 할 경우가 많습니다.
Row count 검증 방법중 GLOBAL TEMPORARY TABLE(GTT)을 활용하여 테이블 별 row count를 수집 및 비교하는 방법에 대해 안내합니다.
참고
UNION ALL 방식의 Count 조회 시에는 메모리를 과사용하는 사용 부담을 개별로 수행하는 PL/SQL 문법으로 수행합니다.
 
 

방법

1. GLOBAL TEMP TABLE 생성

CREATE GLOBAL TEMPORARY TABLE MIG_TAB_COUNT ( owner VARCHAR(40), table_name VARCHAR(128), row_count NUMBER ) ON COMMIT PRESERVE ROWS; -- 세션 단위 보존. 세션 종료 시 자동 초기화 ( On commit preserve rows )
SQL
 
 

2. Row Count 수집 (로컬 테이블 대상)

DECLARE v_sql VARCHAR2(1000); BEGIN FOR i IN (SELECT owner, table_name FROM DBA_TABLES WHERE 1=1 -- AND owner IN ('TIBERO1','TIBERO2') ) LOOP v_sql := 'INSERT INTO MIG_TAB_COUNT (owner, table_name, row_count) ' || 'SELECT ''' || i.owner || ''', ''' || i.table_name || ''', COUNT(*) FROM ' || i.owner || '.' || i.table_name; EXECUTE IMMEDIATE v_sql; END LOOP; END; /
SQL
 
 

3. 결과 확인

결과는 엑셀로 복사하여 이관 전 데이터와 비교합니다. ( As-is 와 To-be 에서 각각 수행 )
SELECT * FROM MIG_TAB_COUNT;
SQL
 
 

4. DBLINK를 이용한 row count 수집방법 (선택사항)

DECLARE v_sql VARCHAR2(1000); BEGIN FOR i IN (SELECT owner, table_name FROM ALL_TABLES WHERE 1=1 -- AND owner IN ('TIBERO1','TIBERO2') ) LOOP v_sql := 'INSERT INTO MIG_TAB_COUNT (owner, table_name, row_count) ' || 'SELECT ''' || i.owner || ''', ''' || i.table_name || ''', COUNT(*) FROM ' || i.owner || '.' || i.table_name || '@olink'; EXECUTE IMMEDIATE v_sql; END LOOP; END;
SQL
 
 
검증에 사용한 MIG_TAB_COUNT 은 drop 합니다.
DROP TABLE MIG_TAB_COUNT PURGE;
SQL
 
 
참고
이관대상 스키마를 owner In 에 추가하며, DBLINK명은 사용 환경에 맞게 수정해 사용합니다.
COUNT를 조회하는 구문에 PARALLEL 을 추가하면 더욱 빠른 성능을 기대할 수 있습니다.
DBLINK를 통해 remote side에서 count를 수행할 경우, 성능이 좋지 않을 수 있습니다.
728x90