如何使用Oracle跟踪文件?

197 阅读1分钟

为了演示跟踪文件的方便,因此我们给一个普通用户scott授予dba的角色。

1、使用管理登录,并授予scott授予dba的角色

[oracle@oracle12c ~]$ sqlplus / as sysdba SQL> grant dba to scott; Grant succeeded. SQL>

2、确定Oracle SID,如下所示。这里的SID就是:orcl

SQL> select instance_name from V$instance;

INSTANCE_NAME orcl SQL>

3、切换到scott用户,并确定会话ID

SQL> conn scott/tiger Connected. SQL> select sid from v$mystat where rownum=1;

SID 70 SQL>

4、根据会话ID,确定会话的地址信息

SQL> select paddr from v$session where sid=70;

PADDR 000000006DAB6588 SQL>

5、根据会话的地址信息,确定操作系统的进程号

SQL> select spid from v$process where addr='000000006DAB6588';

SPID 54685 SQL>

 进入页游目录/u01/app/oracle/diag/rdbms/orcl/orcl/trace会发现,此时并不存在包含54685的跟踪文件,原因是要使用跟踪文件需要手动开启会话的跟踪。

6、开启会话的跟踪

SQL> alter session set sql_trace=true; Session altered. SQL>

7、执行一条简单的SQL语句,并检查www.sangpi.com/u01/app/oracle/diag/rdbms/orcl/orcl/trace目录,这时候就可以看到生成的跟踪文件。

[oracle@oracle12c trace]pwd/u01/app/oracle/diag/rdbms/orcl/orcl/trace[oracle@oracle12ctrace] pwd /u01/app/oracle/diag/rdbms/orcl/orcl/trace [oracle@oracle12c trace] ls *54685.trc orcl_ora_54685.trc [oracle@oracle12c trace]$

8、执行下面的的SQL语句

select * from scott.emp where deptno=10; select * from scott.emp where deptno=20; select * from scott.emp where deptno=30;

9、由于前面开启了会话的跟踪,如果不再需要进行跟踪了,需要手动关闭一下。如果相对electron有更多直观理解的, 也可以参考其格式如下:

www.sangpi.com

SQL> alter session set sql_trace=false; Session altered. SQL>

10、使用tkprof工具格式化跟踪文件

[oracle@oracle12c trace]tkproforclora54685.trc/home/oracle/a.txtsys=nosort=fchelaTKPROF:Release12.2.0.1.0DevelopmentonMonJun2810:37:482021Copyright(c)1982,2017,Oracleand/oritsaffiliates.Allrightsreserved.[oracle@oracle12ctrace] tkprof orcl_ora_54685.trc /home/oracle/a.txt sys=no sort=fchela TKPROF: Release 12.2.0.1.0 - Development on Mon Jun 28 10:37:48 2021 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. [oracle@oracle12c trace]

11、查看生成的a.txt页游文件,如下所示:

SQL ID: 1mvxd868z75nf Plan Hash: 3956160932 select * from scott.emp where deptno=30 SQL ID: 2nbac4n9hnzth Plan Hash: 3956160932 select * from scott.emp where deptno=20 SQL ID: 062r5atccuyv4 Plan Hash: 3956160932 select * from scott.emp where deptno=10