ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【Oracle九大性能视图】之3.v$session_关于与其它性能视图表联合查问题SQL

【Oracle九大性能视图】之3.v$session_关于与其它性能视图表联合查问题SQL

原创 Linux操作系统 作者:jst143 时间:2011-02-10 15:10:58 0 删除 编辑
1、V$SESSION表结构            原文出自飞鹰工作室
SQL> desc v$session;
名称                                      是否为空? 类型
----------------------------------------- -------- ----------------------------
SADDR                                              RAW(8)
SID                                                NUMBER
SERIAL#                                            NUMBER
AUDSID                                             NUMBER
PADDR                                              RAW(8)
USER#                                              NUMBER
USERNAME                                           VARCHAR2(30)
COMMAND                                            NUMBER
OWNERID                                            NUMBER
TADDR                                              VARCHAR2(16)
LOCKWAIT                                           VARCHAR2(16)
STATUS                                             VARCHAR2(8)
SERVER                                             VARCHAR2(9)
SCHEMA#                                            NUMBER
SCHEMANAME                                         VARCHAR2(30)
OSUSER                                             VARCHAR2(30)
PROCESS                                            VARCHAR2(12)
MACHINE                                            VARCHAR2(64)
TERMINAL                                           VARCHAR2(16)
PROGRAM                                            VARCHAR2(64)
TYPE                                               VARCHAR2(10)
SQL_ADDRESS                                        RAW(8)
SQL_HASH_VALUE                                     NUMBER
SQL_ID                                             VARCHAR2(13)
SQL_CHILD_NUMBER                                   NUMBER
PREV_SQL_ADDR                                      RAW(8)
PREV_HASH_VALUE                                    NUMBER
PREV_SQL_ID                                        VARCHAR2(13)
PREV_CHILD_NUMBER                                  NUMBER
PLSQL_ENTRY_OBJECT_ID                              NUMBER
PLSQL_ENTRY_SUBPROGRAM_ID                          NUMBER
PLSQL_OBJECT_ID                                    NUMBER
PLSQL_SUBPROGRAM_ID                                NUMBER
MODULE                                             VARCHAR2(48)
MODULE_HASH                                        NUMBER
ACTION                                             VARCHAR2(32)
ACTION_HASH                                        NUMBER
CLIENT_INFO                                        VARCHAR2(64)
FIXED_TABLE_SEQUENCE                               NUMBER
ROW_WAIT_OBJ#                                      NUMBER
ROW_WAIT_FILE#                                     NUMBER
ROW_WAIT_BLOCK#                                    NUMBER
ROW_WAIT_ROW#                                      NUMBER
LOGON_TIME                                         DATE
LAST_CALL_ET                                       NUMBER
PDML_ENABLED                                       VARCHAR2(3)
FAILOVER_TYPE                                      VARCHAR2(13)
FAILOVER_METHOD                                    VARCHAR2(10)
FAILED_OVER                                        VARCHAR2(3)
RESOURCE_CONSUMER_GROUP                            VARCHAR2(32)
PDML_STATUS                                        VARCHAR2(8)
PDDL_STATUS                                        VARCHAR2(8)
PQ_STATUS                                          VARCHAR2(8)
CURRENT_QUEUE_DURATION                             NUMBER
CLIENT_IDENTIFIER                                  VARCHAR2(64)
BLOCKING_SESSION_STATUS                            VARCHAR2(11)
BLOCKING_INSTANCE                                  NUMBER
BLOCKING_SESSION                                   NUMBER
SEQ#                                               NUMBER
EVENT#                                             NUMBER
EVENT                                              VARCHAR2(64)
P1TEXT                                             VARCHAR2(64)
P1                                                 NUMBER
P1RAW                                              RAW(8)
P2TEXT                                             VARCHAR2(64)
P2                                                 NUMBER
P2RAW                                              RAW(8)
P3TEXT                                             VARCHAR2(64)
P3                                                 NUMBER
P3RAW                                              RAW(8)
WAIT_CLASS_ID                                      NUMBER
WAIT_CLASS#                                        NUMBER
WAIT_CLASS                                         VARCHAR2(64)
WAIT_TIME                                          NUMBER
SECONDS_IN_WAIT                                    NUMBER
STATE                                              VARCHAR2(19)
SERVICE_NAME                                       VARCHAR2(64)
SQL_TRACE                                          VARCHAR2(8)
SQL_TRACE_WAITS                                    VARCHAR2(5)
SQL_TRACE_BINDS                                    VARCHAR2(5)
2、相关SQL

根据lockwait字段可以查询当前正在等待的锁的相关信息:
select * from v$lock where kaddr in (select lockwait from v$session where sid=&sid);
(sql_address,sql_hash_value),(prev_sql_addr,prev_hash_value) 根据这两组字段, 可以查询到当前session正在执行的或最近一次执行的sql语句的详细信息:
select * from v$sqltext where address = &sql_address and hash_value = &sql_hash_value;
根据PID查SQL相关信息
select id,serial# ,username,osuser,machine,program,process,to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') logon from v$session where paddr in ( select addr from v$process where spid in('&pid'));
根据PID查SQL语句
SELECT a.username,a.machine,a.program,a.sid,a.serial#,a.status,c.piece,c.sql_text FROM v$session a,v$process b,v$sqltext c WHERE b.spid='&spid' AND b.addr=a.paddr AND a.sql_address=c.address(+) ORDER BY c.piece;
得到进程的sid号:
select id,serial# ,username,osuser,machine,program,process,to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') logon from v$session where paddr in ( select addr from v$process where spid in('&pid'));
得到session的sqltext语句:
select sql_text from v$sqltext_with_newlines where hash_value in (select SQL_HASH_VALUE from v$session where paddr in (select addr from v$process where spid= '&pid')) order by piece;
根据SID查得SQL
select sql_text
   from v$sqltext a
   where a.hash_value=(select sql_hash_value
                        from v$session b
                       where b.SID='&sid')
order by piece ASC


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

请登录后发表评论 登录
全部评论

注册时间:2010-05-06

  • 博文量
    109
  • 访问量
    138740