Oracle学习笔记:10046 SQL tracle event
10046event可以跟踪记录orale有关sql执性语句情况。跟踪记录文件记录在user_dump_dest指定的目录下。
其中有四种level:
- 1:执行sql语句跟踪;
- 4:绑定变量 ;
- 8:等待事件;
- 12:绑定变量和等待
打开事件跟踪:
- 针对所有session,在initsid.ora里设置-打开 或 alter system set:event='10046 trace name context forever,level n' [scope=spfile] --需要重启oracle
- 针对所有session,在initsid.ora里设置-关闭 或 alter system set:event='' [scope=spfile] --需要重启oracle
- 针对当前session,打开:alter session set events='10046 trace name context forever,level n' --立即生效
- 针对当前session,关闭:alter session set events='10046 trace name context off' --立即生效
- 针对其他session,如何跟踪:
step1:确定要跟踪的pid(oracle的processid) 或 spid(os的进程pid):
SELECT a.sid, a.serial#, b.spid, b.pid, a.username, a.osuser, a.machine
FROM v$session a, v$process b
WHERE a.username IS NOT NULL AND a.paddr=b.addr;
step2:以sysdba的身份登陆sqlplus
step3:初始化跟踪,oradebug setpid pid_n | oradebug setospid spid_n
step4:打开跟踪,oradebug event 10046 trace name context forever,lever n
step5:关闭跟踪,oradebug event 10046 trace name context off
其他:oradebu还可以设置跟踪文件的fullpathname,oradebug tracefile_name filepec
6.使用dbms_system
Dbms_system.set_ev (
si binary_integer, -- SID
se binary_integer, -- Serial#
ev binary_integer, -- Event code or number to set.
le binary_integer, -- Usually level to trace
cm binary_integer -- When to trigger (NULL = context forever.)
To enable 10046 level 12 tracing for SID 22 with a serial# of 99 we would execute the set_ev procedure as shown here:
Exec dbms_system.set_ev(12,22,10046,12,’’);
To disable 10046 tracing enter the following:
Exec dbms_system.set_ev(12,22,10046,0,’’);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)