用户进程跟踪

 分为 基于会话级别跟踪和 实例级别跟踪;
会话级别跟踪又包括 当前会话跟踪和 非当前会话跟踪
跟踪文件位置由user_dump_dest设定,大小由max_dump_file_size 决定
生成的跟踪文件名为<SID>_ora_<SPID>.trc 其中SID为实例名称,SPID为系统进程号
通过v$session中的SQL_TRACE,SQL_TRACE_WAITS,SQL_TRACE_BINDS展示了一个会话的跟踪状态

注:
    在专用服务器模式中:仅仅需要标识该会话并为该会话启用跟踪(专用模式为一对一模式,即一个用户进程对应一个服务器进程)
    在共享模式中:对任何一个会话的跟踪会分布到每个共享服务器进程所生成的跟踪文件内。这时可以用tkprof合并多个sql跟踪文件

1.1 基于会话级别跟踪

1.1.1 针对当前会话跟踪

 --以DBA权限 查看用户跟踪文件所在的位置
SQL> show parameter user_dump NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /u01/admin/sun/udump
SQL> --清空先前产生的跟踪文件
SQL> ! rm -f /u01/admin/sun/udump/*.trc --开启一个会话连接
SQL> conn hr/hr123
Connected.
SQL> --开启当前会话跟踪
SQL> alter session set sql_trace=true; Session altered. SQL> --执行测试SQL语句
--跟踪完毕后执行下面的语句关闭跟踪
SQL> alter session set sql_trace = false; Session altered. SQL> --通过DBA用户获取其SPID
SQL> select s.username,s.sid,p.spid from v$session s,v$process p
2 where s.paddr = p.addr and s.username = 'HR'; USERNAME SID SPID
------------------------------ ---------- ------------
HR 141 1255 SQL>
 #可以使用vi,taik等工具 查看产生的跟踪会话文件
bash-3.00$ vi sun_ora_1255.trc
............
=====================
PARSING IN CURSOR # len= dep= uid= oct= lid= tim= hv= ad='5d4e9008'
select * from jobs --此处是我的测试sql
END OF STMT
PARSE #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
EXEC #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
FETCH #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
FETCH #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
FETCH #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
STAT # id= cnt= pid= pos= obj= op='TABLE ACCESS FULL JOBS (cr=9 pr=6 pw=0 time=37479 us)'
*** -- ::16.843
=====================
PARSING IN CURSOR # len= dep= uid= oct= lid= tim= hv= ad='5d4e3c80'
alter session set sql_trace = false --关闭当前跟踪操作
END OF STMT
PARSE #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
EXEC #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=

1.1.2 针对非当前会话跟踪

 --开启user1 会话连接
SQL> conn user1/user1
Connected.
SQL> --用DBA 用户查看
SQL> select s.username,s.sid,p.spid from v$session s,v$process p
2 where s.paddr = p.addr and s.username = 'USER1'; USERNAME SID SPID
------------------------------ ---------- ------------
USER1 137 1325 SQL> select sid,serial# from v$session where username = 'USER1'; SID SERIAL#
---------- ----------
137 118 SQL> --另开启hr 会话连接
SQL> conn hr/hr123
Connected.
SQL>
--在hr会话中开启对user1的跟踪
SQL> exec dbms_monitor.session_trace_enable(session_id=>137,serial_num=>118); PL/SQL procedure successfully completed. SQL> --执行SQL 语句则开始跟踪
--跟踪完毕后执行下面的语句关闭跟踪
SQL> exec dbms_monitor.session_trace_disable(session_id=>137,serial_num=>118); PL/SQL procedure successfully completed. SQL>
 --查看产生的跟踪会话文件
bash-3.00$ vi sun_ora_1325.trc
=====================
PARSING IN CURSOR # len= dep= uid= oct= lid= tim= hv= ad='5d4ddba4'
update t
set name = 'TRACE'
WHERE ID =
END OF STMT
PARSE #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
EXEC #:c=,e=,p=,cr=,cu=,mis=,r=,dep=,og=,tim=
WAIT #: nam='SQL*Net message to client' ela= driver id= #bytes= p3= obj#= tim=
WAIT #: nam='SQL*Net message from client' ela= driver id= #bytes= p3= obj#= tim=
STAT # id= cnt= pid= pos= obj= op='UPDATE T (cr=37 pr=0 pw=0 time=17923 us)'
STAT # id= cnt= pid= pos= obj= op='TABLE ACCESS FULL T (cr=37 pr=0 pw=0 time=263 us)'
WAIT #: nam='SQL*Net message to client' ela= driver id= #bytes= p3= obj#= tim=

1.2 基于实例级别跟踪

 --清除跟踪文件夹下先前产生的跟踪文件
SQL> ! rm -f /u01/admin/sun/udump/*.trc --设置实例级别的跟踪
SQL> conn /as sysdba
Connected.
SQL> alter system set sql_trace = true;
System altered.
SQL> --开启hr会话测试
SQL> conn hr/hr123
Connected.
SQL> select JOB_TITLE,MIN_SALARY,MAX_SALARY from jobs where JOB_ID='ST_MAN'; JOB_TITLE MIN_SALARY MAX_SALARY
----------------------------------- ---------- ----------
Stock Manager 5500 8500 SQL> --开启user1会话测试
SQL> conn user1/user1
Connected.
SQL> select * from t; ID NAME
---------- ----------------
8 inspur
1 oracle 。。。。。 --查看SPID
SQL> select s.username,s.sid,p.spid from v$session s,v$process p
2 where s.paddr = p.addr; USERNAME SID SPID
------------------------------ ---------- ------------
HR 137 1378
USER1 141 1384
 --查看其各自产生的跟踪文件
bash-3.00$ ls -l *.trc
-rw-r----- oracle oinstall Aug : sun_ora_1378.trc --对hr用户的跟踪
-rw-r----- oracle oinstall Aug : sun_ora_1384.trc --对USER1用户的跟踪
bash-3.00$ --关闭实例级别的跟踪
SQL> alter system set sql_trace = false; System altered. SQL>

Oracle用户进程跟踪的更多相关文章

  1. ORACLE内存结构:PGA And UGA,ORACLE用户进程、服务器进程

    执行一个SQL语句 执行查询语句的过程: 用户进程执行一个查询语句如select * from emp where empno=7839 用户进程和服务器进程建立连接,把改用户进程的信息存储到PGA的 ...

  2. ORACLE处理用户进程大剖析[阅读]

    下面我们要讲ORACLE服务器进程如何处理用户进程的请求,当一个用户进程发出了一条SQL语名:   UPDATE TABBLEA SET SALARY=SALARY*2:   首先,服务器进程把这条语 ...

  3. 如何查找ORACLE中的跟踪文件

    一.跟踪文件是干什么用的?        跟踪文件中包含了大量而详细的诊断和调试信息.通过对跟踪文件的解读和分析,我们可以定位问题.分析问题和解决问题.从跟踪文件的产生的来源来看,跟踪文件又可以分为两 ...

  4. Oracle SQL 脚本跟踪

    NC Oracle SQL 脚本跟踪 脚本: select * from v$sqlarea a and a.LAST_ACTIVE_TIME >= to_date( '2013-02-21 1 ...

  5. oracle 用户与表空间关系

    oracle用户与表空间关系用户=商家表=商品表空间=仓库1. 1个商家能有很多商品,1个商品只能属于一个商家2. 1个商品可以放到仓库A,也可以放到仓库B,但不能同时放入A和B3. 仓库不属于任何商 ...

  6. Oracle用户,权限,角色以及登录管理 scoot 授权

    Oracle用户,权限,角色以及登录管理 1. sys和system用户的区别 system用户只能用normal身份登陆em.除非你对它授予了sysdba的系统权限或者syspoer系统权限. sy ...

  7. Linux内存点滴:用户进程内存空间

    原文出处:PerfGeeks 经常使用top命令了解进程信息,其中包括内存方面的信息.命令top帮助文档是这么解释各个字段的.VIRT , Virtual Image (kb)RES, Residen ...

  8. Oracle CheckPoint进程

    在实例经过分配内存结构,加载控制文件后,然后要打开数据库的时候,需要做到控制文件,数据文件,联机重做日志保持相互状态一致性,数据库才可以打开.当数据库发生实例不正常关闭时(比如系统掉电或者Shutdo ...

  9. Linux内存点滴 用户进程内存空间

    Linux内存点滴 用户进程内存空间 经常使用top命令了解进程信息,其中包括内存方面的信息.命令top帮助文档是这么解释各个字段的. VIRT, Virtual Image (kb) RES, Re ...

随机推荐

  1. visual studio 因为文件过期重新编译项目

    最近visual studio总是莫名其妙的重新编译某个工程,  导致大量项目rebuild . 蛋都碎了... 查了好久, 这种无厘头的问题最烦了 参考这篇文章, http://blogs.msdn ...

  2. JMeter 学习笔记从不懂慢慢提升(01)

    开源已经成为一个趋势,虽然说做测试是一个低端的行业,但是我们也应该在这个低端的行业慢慢提升自己,让自己到达理想的高度. 以前说如果你会使用loadrunner可能别人就会觉得你有一定的水平那么就会拿高 ...

  3. sql语句判断方法之一

    sql语句判断方法之一CASE语句用法总结 背景: Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN ' ...

  4. CF Playing with Paper

    Playing with Paper time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  5. HTML的style属性

    HTML的style属性 HTML的style属性提供了一种改变HTML样式的通用方法.style是在HTML4版本中引用的,它是一种首选的改变HTML元素样式的方法.可以使用style直接的将样式添 ...

  6. 【策略】UVa 278 - Chess

    Chess  Almost everyone knows the problem of putting eight queens on an  chessboard such that no Quee ...

  7. saltstack实战4--综合练习1

    规范配置管理 实际工作中可能会有现网环境,基线环境,开发环境. 需要使用saltstack统一管理.机器多了,业务多了,可能配置文件存放的会比较乱,因此可以统一管理起来 我们可以再加2个目录,test ...

  8. hihocoder 1066 无间道之并查集

    #1066 : 无间道之并查集 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 这天天气晴朗.阳光明媚.鸟语花香,空气中弥漫着春天的气息……额,说远了,总之,小Hi和小H ...

  9. img与父元素的间隙解决

    近来在做H5页面时,突然发现一个问题,使用一个div包裹一个img,在手机预览时,发现图片与div之间有间隙. 当时第一反应就是,是不是间距没有设置为0,于是预览了下代码: .active img { ...

  10. 会话跟踪技术——cookie

    一.会话控制 为了使得网站可以跟踪客户端与服务器之间的交互,保存和记忆每个用户的身份和信息,我们需要一种强有力的解决方案,这样就产生了会话控制. HTTP是一个无状态的协议,此协议无法来维护两个事务之 ...