Database/SQL ํŠœ๋‹

์• ํ”Œ์‹ค๋ฆฌ์ฝ˜ ๋งฅ ๋„์ปค ์˜ค๋ผํด / SQL ํŠธ๋ ˆ์ด์Šค ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ

์ฑ”๐Ÿป 2024. 8. 3. 14:31

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