Oracle Session별 Trace 생성 방법
Oracle 2010. 8. 13. 16:43sqlplus를 이용하여 sysdba 계정에서 아래의 파일을 실행합니다.
SQL> @dbmsutil.sql <== ORACLE_HOME\rdbms\admin 에 파일이 존재함
SQL> @prvtutil.plb <== ORACLE_HOME\rdbms\admin 에 파일이 존재함
SQL> grant execute on dbms_system to system;
- DBMS_SYSTEM.set_sql_trace_in_session(sid, serial#, TRUE)
지정된 session에 대해 SQL trace를 실행하여 user_dump_dest parameter에 지정된 위치에 trace file이 생성된다.
- DBMS_SYSTEM.set_sql_trace_in_session(sid, serial#, FALSE)
지정된 session에 대한 SQL trace를 해제한다.
[예제] system user에서 scott user를 지정하여 SQL trace 생성하기.
sqlplus system/manager
SQL> select sid, serial#
from v$session
where username = 'SCOTT';
SID SERIAL#
--------- ---------
8 12
SQL> exec sys.dbms_system.set_sql_trace_in_session(8, 12, TRUE);
-> scott user에 대한 SQL trace가 실행된다.
SQL> exec sys.dbms_system.set_sql_trace_in_session(8, 12, FALSE);
-> scott user에 걸린 SQL trace가 해제된다.
==> 위와 같이 trace 처리된 내역은 DBMS가 설치된 server의 user_dump_dest 경로에 trc 파일로 생성됩니다.
이렇게 해서 생성된 trace 파일을 TKPROF를 이용하여 가독이 용이한 형태로 내용을 변환하여 확인하면 됩니다.
ex) tkprof '원본파일' '변환파일' [option] sys=no aggregate=no explain=계정ID/계정PWD
--> tkprof C:\oracle\admin\orcl\udump\orcl_ora_3012.trc c:\test.text sys=no aggregate=no explain=scott/tiger
'Oracle' 카테고리의 다른 글
DISTINCT May Remove Sorting From Pre-Sorted Data (0) | 2010.09.10 |
---|---|
Group By와 Distinct의 차이가 뭘까? (0) | 2010.09.10 |
Silent Installation을 통한 Oracle Embedding (0) | 2010.08.16 |
TNS:protocol adapter error (0) | 2010.08.13 |
Create View 생성 Query문의 오류 (0) | 2010.08.13 |