`
logicgate
  • 浏览: 96398 次
  • 性别: Icon_minigender_1
  • 来自: 新力吐皮
社区版块
存档分类
最新评论

Oracle 动态性能表 v$session & v$process

阅读更多

整理自google出来的网络资源。google是个好东东。没有google我会心神不宁。

 

v$session

 

SADDR: session address

 

SID: session identifier,常用于连接其它列。

 

SERIAL#: sid 会重用,但是同一个sid被重用时,serial#会增加,不会重复。

 

AUDSID: audit session id。可以通过audsid查询当前session的sid。select sid from v$session where audsid=userenv('sessionid');

 

PADDR: process address,关联v$process的addr字段,可以通过这个字段查处当前session对应操作系统的那个进程的id。

 

USER#: session's user id。等于dba_users中的user_id。Oracle内部进程的user#为0。

 

USERNAME: session's username。等于dba_users中的username。Oracle内部进程的username为空。

 

COMMAND: session正在执行的SQL Id。1代表create table,3代表select。

 

TADDR: 当前的transaction address。可以用来关联v$transaction的addr字段。

 

LOCKWAIT: 可以通过这个字段查询出当前正在等待的锁的相关信息。sid & lockwait与v$lock中的sid & kaddr相对应。

 

STATUS: 用来判断session状态。Active:正执行SQL语句。Inactive:等待操作。Killed:被标注为删除。

 

SERVER: server type (dedicated or shared)

 

SCHEMA#: schema user id。Oracle内部进程的schema#为0。

 

SCHEMANAME: schema username。Oracle内部进程的schemaname为sys。

 

OSUSER: 客户端操作系统用户名。

 

PROCESS: 客户端process id。

 

MACHINE: 客户端machine name。

 

TERMINAL: 客户端执行的terminal name。

 

PROGRAM: 客户端应用程序。比如ORACLE.EXE (PMON)或者sqlplus.exe

 

TYPE: session type (background or user)

 

SQL_ADDRESS, SQL_HASH_VALUE, SQL_ID, SQL_CHILD_NUMBER: session正在执行的sql statement,和v$sql中的address, hash_value, sql_id, child_number相对应。

 

PREV_SQL_ADDR, PREV_HASH_VALUE, PREV_SQL_ID, PREV_CHILD_NUMBER: 上一次执行的sql statement。

 

MODULE, MODULE_HASH, ACTION, ACTION_HASH, CLIENT_INFO: 应用通过DBMS_APPLICATION_INFO设置的一些信息。

 

FIXED_TABLE_SEQUENCE: 当session完成一个user call后就会增加的一个数值,也就是说,如果session inactive,它就不会增加。因此可以根据此字段的值变化来监控某个时间点以来的session的性能情况。例如,一个小时以前,某个session的FIXED_TABLE_SEQUENCE是10000,而现在是20000,则表明一个小时内其user call比较频繁,可以重点关注此session的performance statistics。

 

ROW_WAIT_OBJ#: 被锁定行所在table的object_id。和dba_objects中的object_id关联可以得到被锁定的table name。

 

ROW_WAIT_FILE#: 被锁定行所在的datafile id。和v$datafile中的file#关联可以得到datafile name。

 

ROW_WAIT_BLOCK#: Identifier for the block containing the row specified in ROW_WAIT_ROW#

 

ROW_WAIT_ROW#: session当前正在等待的被锁定的行。

 

LOGON_TIME: session logon time

 

v$process

 

ADDR: process address。可以和v$session的paddr字段关联。

 

PID: Oracle进程identifier。

 

SPID: 操作系统进程identifier。

 

USERNAME: 操作系统进程的用户名。并非Oracle用户名。

 

SERIAL#:: process serial number。

 

TERMINAL: 操作系统terminal identifier(e.g., computer name)。

 

PROGRAM: 进程正在执行的程序(e.g., ORACLE.EXE (ARC0)),和v$session中的program类似。

 

BACKGROUND: 1代表oracle background process,null代表normal process。

 

 

查看当前用户的sid和serial#:

select sid, serial#, status from v$session where audsid=userenv('sessionid');

 

查看当前用户的spid:

select spid from v$process p, v$session s where s.audsid=userenv('sessionid') and s.paddr=p.addr;

select spid from v$process p join v$session s on p.addr=s.paddr and s.audsid=userenv('sessionid');

 

查看当前用户的trace file路径:

select p.value || '\' || t.instance || '_ora_' || ltrim(to_char(p.spid,'fm99999')) || '.trc'

    from v$process p, v$session s, v$parameter p, v$thread t

    where p.addr = s.paddr and s.audsid = userenv('sessionid') and p.name = 'user_dump_dest';

 

已知spid,查看当前正在执行或最近一次执行的语句:

select /*+ ordered */ sql_text from v$sqltext sql

    where (sql.hash_value, sql.address) in (

        select decode(sql_hash_value, 0, prev_hash_value, sql_hash_value), decode(sql_hash_value, 0, prev_sql_addr, sql_address)

        from v$session s where s.paddr = (select addr from v$process p where p.spid = to_number('&pid')))

    order by piece asc;

 

查看锁和等待:

col user_name format a10

col owner format a10

col object_name format a15

col sid format 999999

col serial# format 999999

col spid format a6

select /*+ rule */ lpad(' ', decode(l.xidusn, 0, 3, 0)) || l.oracle_username user_name,

    o.owner, o.object_name, o.object_type, s.sid, s.serial#, p.spid

    from v$locked_object l, dba_objects o, v$session s, v$process p

    where l.object_id = o.object_id and l.session_id = s.sid and s.paddr = p.addr

    order by o.object_id, xidusn desc;

分享到:
评论

相关推荐

    学些动态性能表-word版

    学习动态性能表(六)--v$session_wait&v$session_event 学习动态性能表(七)--v$process 学习动态性能表(八)--v$lock&v$locked_object 学习动态性能表(九)--v$filestat 学习动态性能表(十)--v$session_longops ...

    查看存储过程执行情况

    FROM v$session se,v$session_wait st,v$sess_io si,v$process pr WHERE st.sid=se.sid AND st.sid=si.sid AND se.PADDR=pr.ADDR and se.username is not null AND se.sid>6 AND st.wait_time=0 AND st.event NOT ...

    Oracle10g DBA经常使用的动态性能视图和数据字典

    二、DBA最常用的动态性能视图 v$datafile:数据库使用的数据文件信息 v$librarycache:共享池中SQL语句的管理信息 v$lock:通过访问数据库会话,设置对象锁的所有信息 v$log:从控制文件中提取有关重做日志组的...

    修改oracle process session 初始化参数

    oracle process与session 查询 设定 与关系

    Oracle 常用系统表

    v$process:处理器的信息; v$session:会话信息; v$transaction:事务信息; v$resource:资源信息; v$sga:系统全局区的信息。 上面的视图名中的‘v$’,只是视图名字中的字符。类似于上面的视图或表还有很多,...

    oracle Session与lock 解除

    ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X 共享行专用(SRX):阻止其他...

    查询Oracle中正在执行和执行过的SQL语句

    查询Oracle正在执行的sql语句及执行该语句的用户 ...FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value 其它网友给出的正在执行的sql语句代码 select a.u

    第6课 Oracle性能优化(之一)

    如果查到CPU的占用率非常高,取出PID,并查看对应的SQL... from v$process vp, v$session vs, v$sqlarea vq where vp.ADDR = vs.PADDR and vs.SQL_HASH_VALUE = vq.HASH_VALUE and vp.SPID = 3872 --换成对应的SPID

    oracle数据表解锁

    FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C, v$lock d WHERE (A.OBJECT_ID = B.OBJECT_ID) AND (B.PROCESS = C.PROCESS) and C.sid = d.sid and B.LOCKED_MODE = D.LMODE ORDER BY 1, 2; --...

    oracle中session和processes的设置

    oracle中参数session和processes的设置

    修改oracle初始化参数,包括Process,Session,SGA,PGA

    简明的提供oracle的初始化参数包括Process,Session,SGA,PGA的修改命令,这些参数的具体值根据实际来定。

    Oracle Session Monitor v1.0

    oracle 进程管理工具,可以设置时间,自动查杀进程!!!!!!!!!

    查詢高消耗CPU的pid的SQL

    查詢高消耗CPU的pid的SQL,SELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (a.hash_value, a....FROM v$session b WHERE b.paddr = (SELECT addr FROM v$process c WHERE c.spid = '&pid')) ORDER BY piece ASC

    获取top前10个Oracle的进程(支持多实例)

    FROM v$process TA INNER JOIN v$session TB ON TA.addr=TB.paddr WHERE TA.spid='12167' AND TB.sql_address!='00' not sql runing SELECT RAWTOHEX(TB.SQL_ADDRESS) SQL_ADDRESS,TB.SQL_HASH_VALUE,TB.SID ...

    Oracle查看和修改连接数(进程/会话/并发等等)

    1.查询数据库当前进程的连接数: 代码如下: select count(*) from v$process; 2.查看数据库当前会话的连接数: 代码如下: elect count(*) from v$session; 3.查看数据库的并发连接数: 代码如下: select count(*) ...

    oracle查看被锁的表和被锁的进程以及杀掉这个进程

    FROM v$process p, v$session a, v$locked_object b, all_objects c WHERE p.addr = a.paddr AND a.process = b.process AND c.object_id = b.object_id — 2. 查看是哪个进程锁的 SELECT sid, serial#, username,...

    orcale常用命令

    SQL> select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr; 说明:21是某个连接的sid数 然后用 kill 命令杀此进程号。 五、SQL*PLUS使用 a、近入SQL*Plus $sqlplus ...

    oracle连接数修改方法

    Oracle查看、修改连接数  1.查询数据库当前进程的连接数:  select count(*) from v$process;  2.查看数据库当前会话的连接数:  elect count(*) from v$session;

    Oracle中的Connect/session和process的区别及关系介绍

    本文将详细探讨下Oracle中的Connect/session和process的区别及关系,感兴趣的你可以参考下,希望可以帮助到你

Global site tag (gtag.js) - Google Analytics