0
点赞
收藏
分享

微信扫一扫

oracle跟踪会话执行的几种方式

瑾谋 2024-02-28 阅读 10

因为TRACE的目标范围不同,所以导致必须使用不同的方法。若作用于数据库全局的,则改初始化参数。若只作用于当前会话的,则就用ALTER SESSION命令。若作用于其它会话的,则就用DBMS_SYSTEM包。

1.SQL_TRACE的使用

SQL_TRACE可以作为初始化参数在全局启用,也可以通过命令行方式在具体会话启用。在参数文件(PFILE/SPFILE)中指定:SQL_TRACE=TRUE或ALTER SYSTEM SET SQL_TRACE=TRUE;。

通过在全局启用SQL_TRACE可以跟踪到所有后台进程及所有用户进程的活动,通过跟踪文件的实时变化,可以清晰地看到各个进程之间的紧密协调。需要注意的是,在全局启用SQL_TRACE会产生大量trace文件,很容易耗尽磁盘空间,这通常会导致比较严重的性能问题,所以在生产环境中要谨慎使用,并且及时关闭。

1.1.当前SESSION跟踪

1.1.1.开启追踪

ALTER SESSION SET SQL_TRACE=TRUE;

1.1.2.执行sql

SELECT * FROM SCOTT.EMP WHERE EMPNO=7839;

1.1.3.停止跟踪

ALTER SESSION SET SQL_TRACE=FALSE;

1.1.4.查看产生的trace文件

SELECT *FROM V$DIAG_INFO WHERE NAME='Default Trace File';

1.1.5.格式化trace文件

[oracle@test01 ~]$ tkprof /oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_18890.trc /tmp/111.txt

2.跟踪其他用户session

2.1.1.查询出需要跟踪的session信息

session1信息如下:

SELECT SID,SERIAL#,USERNAME FROM V$SESSION WHERE USERNAME='SYS' AND STATUS='INACTIVE';


举报

相关推荐

0 条评论