Oracle SQL*Plus 상에서 SQL을 실행할때 실행결과는 화면에 뿌리지 않고 최종수행시간만 알고싶은 경우가 있습니다.
이때, 쉽게 사용할 수 있는 방법이 autotrace 기능입니다.
원래 autotrace 기능은 자동으로 SQL 실행정보(실행계획, 실행통계)를 출력해주는 기능인데, 이것과 함께 set timing on 을 함께 사용하면 됩니다.
위에서 set timing on 명령어를 써줬기 때문에 최종수행시간(Elapsed Time) 이 나옵니다.
하지만, set autotrace trace stat 명령어를 줬기 때문에 실행결과는 나오지 않습니다.
실제 EMP 테이블을 조회하기는 하지만, 조회결과는 화면에 출력하지 않고, 최종 조회된 건수인 "14 rows selected." 정보만 화면에 표시합니다.
그리고, 마지막에 Statisics 통계정보를 표시합니다.
set autotrace 명령어는 SQL*Plus 상에서 SQL을 실제로 끝까지 수행한 후에 Trace 정보를 출력해주는 명령어입니다.
set autotrace 의 첫번째 인자는 off/on/traceonly 입니다.
off 는 trace 기능을 끄는 것이고, on 은 SQL실행결과를 함께 화면에 출력하는 것입니다.
traceonly 는 실행결과는 출력하지 말라는 의미입니다.
traceonly 는 약자로 trace 라고만 쓸수도 있습니다.
set autotrace 의 두번째 인자는 explain/statistics 입니다.
explain 만 지정하면 실행계획(Plan)만 출력하라는 의미입니다.
statistics 만 지정하면 통계정보만 출력하라는 의미입니다.
약자로 exp, stat 이라고만 쓸수도 있습니다.
주의할 점은, explain 또는 statistics 를 아무것도 지정안하면, 이게 둘다 모두 출력하라는 의미가 되버립니다.
set autotrace 도 약자로 set autot 라고만 써도 됩니다.
약자만 쓸 수 있어서 처음에는 많이 헷갈립니다.
"set autot trace exp" => "set autotrace traceonly explain" (Plan만 출력)
"set autot trace stat" => "set autotrace traceonly statistics" (통계치만 출력)
"set autot trace" => "set autotrace traceonly" (둘다 출력)
"set autot on exp" => "set autotrace on explain" (실행결과도 출력하고, Plan 도 출력)
"set timi on" => "set timing on" (실행시간 출력)
'IT관련' 카테고리의 다른 글
오라클 DB에 들어있는 무료 모니터링툴 - oratop (콘솔에서 바로 실행가능한) (0) | 2020.06.26 |
---|---|
오라클 Undocumented Hint (materialize, inline 힌트) - With 구문 (0) | 2020.06.24 |
오라클 AWR 에서 Top SQL 추출하는 SQL 스크립트 (dba_hist_sqlstat, dba_hist_sqltext) (0) | 2020.06.12 |
오라클 대량데이터 Update, Delete 작업 빠르게 하는 방법 (feat CTAS) (1) | 2020.06.12 |
오라클 Lock Type (락종류, 락유형) - AB, AE, MR, TO, TS, TT, US, ZZ 등 (2) | 2020.06.09 |