资源描述:
《学习动态性能表(七)--v$process》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、学习动态性能表第七篇--V$PROCESS2007.5.30 本视图包含当前系统oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。在某些情况下非常有用:1.如果数据库瓶颈是系统资源(如:cpu,内存),并且占用资源最多的用户总是停留在某几个服务进程,那么进行如下诸项:l找出资源进程l找出它们的session,你必须将进程与会话联系起来。l找出为什么session占用了如此多的资源2.SQL跟踪文件名是基于服务进程的操作系统进程ID。要找出session的跟踪文件,你必须将sess
2、ion与服务进程联系起来。3.某些事件,如rdbmsipcreply,鉴别session进程的Oracle进程ID在等什么。要发现这些进程在做什么,你必须找出它们的session。4.你所看到的服务器上的后台进程(DBWR,LGWR,PMON等)都是服务进程。要想知道他们在做什么,你必须找到他们的session。V$PROCESS中的常用列lADDR:进程对象地址lPID:oracle进程IDlSPID:操作系统进程IDV$PROCESS中的连接列ColumnViewJoinedColumn(s)ADDRV$SESSIONPADDR示例:1.查找指
3、定系统用户在oracle中的session信息及进程id,假设操作系统用户为:junsansiselects.sid,s.SERIAL#,s.username,p.spidfromv$sessions,v$processpwheres.osuser='junsansi'ands.PADDR=p.ADDR2.查看锁和等待SELECT/*+rule*/lpad('',decode(l.xidusn,0,3,0))
4、
5、l.oracle_usernameUser_name,o.owner,o.object_name,o.object_type,s.sid,
6、s.serial#,p.spidFROMv$locked_objectl,dba_objectso,v$sessions,v$processpWHEREl.object_id=o.object_idANDl.session_id=s.sidands.paddr=p.addrORDERBYo.object_id,xidusnDESC1.附注: 在linux环境可以通过ps查看进程信息包括pid,windows中任务管理器的PID与v$process中pid不能一一对应,这块在oracleDocument中也没有找到介绍,后来google了一下,有资
7、料介绍说是由于windows是多线程服务器,每个进程包含一系列线程。这点于unix等不同,Unix每个Oralce进程独立存在,在Nt上所有线程由Oralce进程衍生。 要在windows中显示oracle相关进程pid,我们可以通过一个简单的sql语句来实现。SELECTs.SID,p.pid,p.spidsignaled,s.osuser,s.programFROMv$processp,v$sessionsWHEREp.addr=s.paddr;SIDPIDSIGNALEDOSUSERPROGRAM122452SYSTEMORACLE.EXE
8、232460SYSTEMORACLE.EXE342472SYSTEMORACLE.EXE452492SYSTEMORACLE.EXE562496SYSTEMORACLE.EXE672508SYSTEMORACLE.EXE782520SYSTEMORACLE.EXE892524SYSTEMORACLE.EXE10121316JSSjunsansiPlSqlDev.exe9133420JSSjunsansiPlSqlDev.exe1314660JSSjunsansiPlSqlDev.exe还可以通过和v$bgprocess连接查询到后台进程的名字
9、:SELECTs.SIDSID,p.spidthreadid,p.programprocessname,bg.NAMENAMEFROMv$processp,v$sessions,v$bgprocessbgWHEREp.addr=s.paddrANDp.addr=bg.paddrANDbg.paddr<>'00';SIDTHREADIDPROCESSNAMENAME12452ORACLE.EXEPMON22460ORACLE.EXEDBW032472ORACLE.EXELGWR42492ORACLE.EXECKPT52496ORACLE.EXESMO
10、N62508ORACLE.EXERECO72520ORACLE.EXECJQ082524ORACLE.EXEQMN0Eyg