DUAL

EXEM Knowledge Base

Jump to: navigation, 찾기

목차

[편집] 개요

오라클에서 자동으로 생성되는 Dummy 테이블이다. SYS 스키마에 존재하나 DUAL 이라는 이름으로 모든 사용자가 사용할 수 있다. 사용자 계산이나 사용자 함수를 사용할 때 유용하며, select 1 from dual; 을 실행하여 WAS에서 DB와의 연결을 확인하기 위하여 사용되기도 한다.

[편집] Analysis Case

[편집] DUAL 테이블 수행과다 해결하기

오라클 성능 모니터링/분석 솔루션인 맥스게이지의 Performance Analysis 를 통하여 하루 동안의 로그를 확인해보자. 그림:4_3_1.jpg 그림과 같이 1분간의 특정 세션의 그룹핑된 결과, Execution 횟수가 분당 22만번이상으로 나타나고, DUAL 테이블에 대한 반복적인 사용이 발생하고 있다.

SQL 수행횟수 과다 문제는 Loop Query를 하나의 SQL로 변경하는 것이 바람직하다.

특히, 위와 같이 DUAL 테이블에 대하여 반복적으로 수행하는 경우에는 DUAL 테이블 조회에 대한 부하를 감소시키는 위하여 SYS.X$DUAL 을 이용하는 방법이 있다. DUAL 테이블을 많이 참조하는 환경에 유용하게 사용할 수 있다.

[편집] X$DUAL vs DUAL

SYS> create or replace view xm$dual as select dummy from sys.x$dual;
SCOTT> SELECT dummy into :v_dummy FROM DUAL;
SCOTT> SELECT dummy into :v_dummy FROM XM$DUAL;
각각의 SQL을  100,000 회 LOOP 수행
DUAL       = Response Time: 7.6 초
XM$DUAL = Response Time: 4.3 초