Oracle数据库sql语句的跟踪

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:48   1655   0

http://blog.sina.com.cn/s/blog_40c5130e0100biui.html

以下介绍两种SQL语句跟踪方法:企业管理器与命令跟踪方法。

一.企业管理器中跟踪SQL语句:

1.打开oracle的控制台。

2.选中要查询SQL语句执行效能的数据库。

3.选择菜单栏上“工具”—〉“diagnostic pack”—〉“top sql”,“top sessions”。

4.输入sys帐号密码并以dba身份登录。

5.在“顶层SQL”窗口选择,需要性能统计的项,比如“cpu时间”、“经过时间”、“每次执行磁盘读取数”等,该窗口就会显示以该性能参数为统计项的前25条数据。

6.该显示数据可以保存为报告图表(“文件”à“报告图表”),该图表为html格式可供维护小组进行sql性能分析。

二.命令方式跟踪用户的当前会话:

1.用户跟踪文件

.服务器进程跟踪文件可以通过以下命令,在会级或实例级被激活:

 -alter session 命令

 -set_sql_trace_in_session 过程

-初始化参数sql_trace

.用户跟踪文件中包含了在当前会话中被跟踪的SQL语句的统计信息

.Oracle数据库为每个服务器进程创建跟踪文件

2.激活用户跟踪文件

 .实例级跟踪:设置SQL_TRACE初始化参数

 .会话级跟踪:alter session set sql_trace=true

.在应用程序中激活跟踪:

  Dbms_system.set_sql_trace_in_session(sid,serial#,true)

(1).跟踪当前会话-任何用户都可以跟踪自己的会话

  开始跟踪:alter session set sql_trace=true

结束跟踪:alter session set sql_trace=false

(2).跟踪实例-只能sys进行跟

开始跟踪:alter system set sql_trace=true scope=spfile

结束跟踪:alter system set sql_trace=false scope=spfile

(3).应用程序中跟踪

  首先了解一下所有的会话情况:

  Select username,sid,serial# from v$session 结果如下:

Oracle数据库sql语句的跟踪

开始跟踪:exec dbms_system.set_sql_trace_in_session(10,25.true)

结束跟踪:exec dbms_system.set_sql_trace_in_session(10,25.false)

3.格式化跟踪文件(tkprof):

在命令行进入跟踪文件所在目录,如下:

D:\oralce\admin\test\udump>tkprof test_ora_3504.trc result.txt

格式完跟踪文件之后,可以在result.txt文件中查看所跟踪用户执行的sql语句情况.

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP