SQLP ๊ณต๋ถํ์๋ ๋ถ๋ค ์ฐธ๊ณ ํ์ธ์ฉ..
sqltrace.sql
ALTER SESSION SET sql_trace = TRUE;
select *
from tmp
where a = 15487;
ALTER SESSION SET sql_trace = FALSE;
SELECT VALUE
FROM V$DIAG_INFO
WHERE NAME = 'Diag Trace';
SELECT VALUE
FROM V$DIAG_INFO
WHERE NAME = 'Default Trace File';
exit;
1. ์ค๋ผํด์ด ์ค์น๋ ๋์ปค ์ปจํ ์ด๋ ๋ด๋ถ์ /opt/oracle/sql_trace_tmp ๋๋ ํ ๋ฆฌ ์์ฑ
2. ์ ์ธ๋ ํ๊ฒฝ๋ณ์ ๋ณธ์ธ ๋๋ ํ ๋ฆฌ์ ๋ง๊ฒ ๋ณ๊ฒฝ, ์ค๋ผํด username, pw ์์ ํด์ ์ฌ์ฉ
SQL_TRACE_PATH="/Users/user/study/SQL/sql_trace"
REPORT_NAME="reportTestHi.prf"
DOCKER_CONTAINER="oracle"
SQL_SCRIPT_PATH="/opt/oracle/sql_trace_tmp/sqltrace.sql"
TRACE_OUTPUT="trace_output.txt"
TRACE_FILENAME="trace_filename.txt"
# sql_trace.sql ํ์ผ์ ๋์ปค ๋ด๋ถ๋ก ์ฎ๊ธด๋ค.
docker cp $SQL_TRACE_PATH/sqltrace.sql $DOCKER_CONTAINER:$SQL_SCRIPT_PATH
# ๋์ปค ๋ด๋ถ์์ sql ์ ์ํด ์๊น ์ฎ๊ธด sql ์คํฌ๋ฆฝํธ๋ฅผ ์คํ์ํจ๋ค.
docker exec -i $DOCKER_CONTAINER sqlplus SCOTT/tiger@xe @$SQL_SCRIPT_PATH > $SQL_TRACE_PATH/$TRACE_OUTPUT
grep -oE '/opt/oracle/diag/rdbms/xe/XE/trace/XE_ora_[0-9]+\.trc' $SQL_TRACE_PATH/$TRACE_OUTPUT > $SQL_TRACE_PATH/$TRACE_FILENAME
read SQL_TRACE_FILE_PATH < $SQL_TRACE_PATH/$TRACE_FILENAME
echo $SQL_TRACE_FILE_PATH
docker exec -i -e SQL_TRACE_FILE_PATH=$SQL_TRACE_FILE_PATH -e REPORT_NAME=$REPORT_NAME $DOCKER_CONTAINER bash -c "tkprof \$SQL_TRACE_FILE_PATH /opt/oracle/sql_trace_tmp/\$REPORT_NAME sys=no"
docker cp $DOCKER_CONTAINER:/opt/oracle/sql_trace_tmp/$REPORT_NAME $SQL_TRACE_PATH
'Database > SQL ํ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์น์ ํ SQL ํ๋ ์์ฝ ์ ๋ฆฌ (0) | 2024.01.25 |
---|