oracle 追踪一个SQL会话
来源:互联网 发布:mac百度网盘上传速度慢 编辑:程序博客网 时间:2024/05/01 23:28
oracle中追踪一个sql会话有很多方式,oracle 11g中官方推荐使用DBMS_MONITOR.
在实际生产环境中,尽量慎重这个操作,尽可能找出具体的会话ID或pid来追踪.
--新建测试表
create tablespace test
datafile 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\test01.DBF'
size 500m
autoextend on
next 100m maxsize unlimited
extent management local autoallocate
segment space management auto;
create table t1
(
sid int not null primary key,
sname varchar2(10)
)
tablespace test;
--循环导入数据
declare
maxrecords constant int:=100000;
i int :=1;
begin
for i in 1..maxrecords loop
insert into t1 values(i,'ocpyang');
end loop;
dbms_output.put_line(' 成功录入数据! ');
commit;
end;
/
select se.sid,
se.serial#,
pr.spid,
se.status 状态,
substr(se.program, 1, 20) "程序",
substr(se.machine, 1, 30) "机器名",
sq.sql_text "sql文本"
from v$session se,
v$sqlarea sq,
v$process pr
where se.paddr = pr.addr(+)
and se.sql_address = sq.address(+)
and schemaname <> 'SYS'
and se.username=upper('&username')
order by se.sid
;
SID SERIAL# SPID 状态 程序 机器名 sql文本
---------- ---------- -------------- -------- -------------------- ---------- -----------------
171 25079 1539784 INACTIVE sqlplus.exe WORKGROUP\LOG select * from t1
execute dbms_monitor.session_trace_enable(session_id=>171,serial_num=> 25079,waits=>true,binds=>false);
select * from t1 ;
execute dbms_monitor.session_trace_disable();
--步骤5)获得跟踪文件名
---方法1:
SELECT d.VALUE
|| '\'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) 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
/
---方法2:
select value from v$diag_info
where name='Default Trace File';
E:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_ora_1539784.trc
--步骤6)分析跟踪文件
----方法1:tkprof
tkprof E:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_ora_1539784.trc e:\ocpyang427.out sys=yes
- oracle 追踪一个SQL会话
- 追踪sql会话 dbms_monitor
- 会话追踪
- oracle 追踪特定sql语句
- 追踪oracle执行sql情况
- [Servlet]会话追踪技术
- oracle数据库表空间,会话相关sql
- SQL 追踪
- 【oracle】限制用户只能建立一个会话
- 保证oracle数据库只有一个会话(1)
- 4种会话追踪方式
- web会话追踪的实现
- ORACLE追踪应用执行sql语句——10046事件
- 关于使用会话追踪(session tracking)
- 实现会话追踪的4种方式
- 【Oracle】一个SQL语法分析
- sequence与会话有关--oracle一个比较烂的特性
- sequence与会话有关--oracle一个比较烂的特性
- jar包中的 manifest详解
- FillChar
- linux中全局热键设置工具xbindkeys
- 验证 Ubuntu11.10 安装telnet ssh ftp 软件
- Visual Studio 10.0设置引用HalconDotNet.dll
- oracle 追踪一个SQL会话
- PSCP工具 - 实现windows和*inx之间的双向文件传输
- Kissxml 解析 XML数据的简单Demo
- C文件读写操作-向文件写入字符串遇到的问题(sizeof与strlen)
- linux内核驱动模块加载方式
- struts2+spring+hibernate整合时所需的jar包
- XP远程桌面mstsc和带参数的mstsc /console的差别
- //hdu 1879 pim 简单
- 杂记