工具04_SQL Trace/DBMS_SYSTEM
2014-06-25 Created By BaoXinjian
一、摘要
SQL TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具。在日常的数据库问题诊断和解决中,SQL TRACE是非常常用的方法。
一般,一次跟踪可以分为以下几步:
1. 界定需要跟踪的目标范围,并使用适当的命令启用所需跟踪。
2. 经过一段时间后,停止跟踪。此时应该产生了一个跟踪结果文件。
3. 找到跟踪文件,并对其进行格式化,然后阅读或分析。
另文已介绍了其他的跟踪工具DBMS_PROFILER, Form Trace, Request Trace等
二、明细分析
案例: 跟踪自己的Session中的SQL操作
Step1. 查询自己Session的SID和Serial#
Step2. 启动 SQL Trace节点
begin
dbms_system.set_SQL_TRACE_in_session(497,13413,true);
end;
Step3. 在启动SQL Trace节点中后,进行SQL操作,系统会自动记录该Session中所有的SQL操作记录,直至关闭
Step4. 关闭 SQL Trace节点
begin
dbms_system.set_sql_trace_in_session(497,13413,false);
end;
Step5. 查看所产生的Trace文件目录
SELECT d.VALUE || '' || LOWER(RTRIM(i.instance, CHR(0))) || '_ora_' || p.spid || '.trc' trace_file_name FROM (SELECT p.spid FROM v$sesstat m, v$session s, v$process p WHERE m.statistic# = 1 AND s.sid = m.sid AND p.addr = s.paddr AND s.sid = 581) p, (SELECT t.instance FROM v$thread t, v$parameter v WHERE v.name = 'thread' AND (v.VALUE = 0 OR t.thread# = TO_NUMBER(v.VALUE))) i, (SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') d;
Step6. Download该trace
Step7. 在该Trace文件中,可以找到SQL Trace启动和关闭节点之间的SQL,如下图
Step8. 之后也可通过格式化工具tkprof将Trace文件进行格式转化,变成易读文件
tkprof VIS_ora_18295.trc VIS_ora_18295.prf EXPLAIN=jvi2/jvi2_dev SYS=NO SORT=EXECPU,FCHCPU
此步另文已介绍,略过
Thanks and Regards
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?