기술 정보
home
채널 소개
home

주 사용 테이블 검색 방법

문서 유형
기술 정보
분야
모니터링/점검
키워드
v$sql_plan
1 more property

개요

DW 구축시 Legacy DB 의 주사용 테이블을 식별할 수 있는 방법을 안내합니다.

방법

v$sql_plan에 object# 를 이용하면 sql 에서 사용한 테이블 식별이 가능합니다.
참고
자주 사용하는 테이블은 sum(executions)이 큰 값일 수록 DB 내에서 자주 사용하는 테이블로 간주할 수 있습니다.
1.
최근 7 일이내 실행된 sql 에서 table list 추출
WITH TEMP (OWNER, SQL_ID, TABLE_LIST) AS ( SELECT OWNER,SQL_ID, WM_CONCAT (OBJECT_NAME) TABLE_LIST FROM ( SELECT DISTINCT BB.OWNER, AA.SQL_ID, BB.OBJECT_NAME FROM V$SQL_PLAN AA, DBA_OBJECTS BB WHERE AA.OBJECT#=BB.OBJECT_ID AND BB.OBJECT_TYPE IN('TABLE', 'TABLE SUBPARTITION', 'TABLE PARTITION') AND BB.OWNER NOT IN('SYS', 'SYSTEM') ) GROUP BY OWNER, SQL_ID) SELECT B.OWNER, B.TABLE_LIST, A.SQL_TEXT, A.SQL_ID, A.EXECUTIONS, A.CPU_TIME, A.ELAPSED_TIME, A.LAST_ACTIVE_TIME, A.FIRST_LOAD_TIME FROM V$SQLAREA A, TEMP B WHERE A.LAST_ACTIVE_TIME>TRUNC (SYSDATE-8) AND A.SQL_ID=B.SQL_ID ORDER BY A.EXECUTIONS DESC;
SQL
복사
2.
최근 7 일 이내 사용된 쿼리의 테이블에 대한 execution count sum. 테이블 사용 빈도 확인
WITH TEMP (OWNER, SQL_ID, TABLE_NAME) AS (SELECT DISTINCT BB.OWNER, AA.SQL_ID, BB.OBJECT_NAME TABLE_NAME FROM V$SQL_PLAN AA, DBA_OBJECTS BB WHERE AA.OBJECT#=BB.OBJECT_ID AND BB.OBJECT_TYPE IN('TABLE', 'TABLE SUBPARTITION', 'TABLE PARTITION') AND BB.OWNER in ('A') ) SELECT OWNER, TABLE_NAME,count(*) sqls, SUM(EXECUTIONS), (select comments from dba_tab_comments b0 where a0.owner=b0.owner and a0.table_name=b0.table_name) comments FROM ( SELECT B.OWNER, B.TABLE_NAME, A.SQL_TEXT, A.SQL_ID, A.EXECUTIONS, A.CPU_TIME, A.ELAPSED_TIME, A.LAST_ACTIVE_TIME, A.FIRST_LOAD_TIME FROM V$SQLAREA A, TEMP B WHERE A.LAST_ACTIVE_TIME>TRUNC (SYSDATE-1) AND A.SQL_ID=B.SQL_ID ) a0 GROUP BY OWNER, TABLE_NAME ORDER BY OWNER,SUM(EXECUTIONS) DESC;
SQL
복사