ITPub博客

首页 > Linux操作系统 > Linux操作系统 > v$session之小测试(三)_与dba_objects

v$session之小测试(三)_与dba_objects

原创 Linux操作系统 作者:wisdomone1 时间:2010-07-30 10:08:57 0 删除 编辑
--测试目的:学习v$session之last_call_et及row打头相关列的用法
SQL> select sid,serial#,status,
row_wait_obj#, --会话对应sql所等待对象(表索引等)的object_id,可与dba_objects的object_id匹配
row_wait_file#,--会话对应sql所等待对象对应的数据文件id,可与v$datafile的file#匹配
row_wait_block#,--会话对应sql所等待对象所在的block编号
row_wait_row#,--注意:只有row_wait_obj#不为-1且当前会话对应的sql要等待另一个会话事务提交,才有效
last_call_et   --根据会话不同状态(active及inactive),处于此状态有多少秒了,可结合logon_time有针对性处理一些持锁或等待锁会话了
from v$session
where username='PD';
  SID    SERIAL# STATUS   ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# LAST_CALL_ET
----- ---------- -------- ------------- -------------- --------------- ------------- ------------
  968         75 INACTIVE         54227              6           12106             0        60303
  976        416 ACTIVE           56527              6           11261             0         2776  --等待锁的会话
  988        154 INACTIVE            -1              0               0             0         2782  --持锁会话(这个row_wait_obj#为-1,不用看它了)
 

--根据以上信息在dba_objects查看等待锁会话到底在等待的对象是什么呢

SQL> col object_name for a10
SQL> r
  1  select owner,object_name,object_id,object_type,status from dba_objects where object_id in(select row_wait_obj# from
  2* v$session where username='PD' and status='ACTIVE')
OWNER                          OBJECT_NAM  OBJECT_ID OBJECT_TYPE         STATUS
------------------------------ ---------- ---------- ------------------- -------
PD                             T1              56527 TABLE               VALID   --一查看,原来等待锁的会话在等待一个表t1啊,哈哈

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-669831/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12690159