您在这里:首页 > 学员专区 > 技术文章
Oracle视频
Oracle
CUUG课程

Oracle八大性能视图之v$session

 

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

相关文章 [上一篇] Oracle八大性能视图之v$process
010-88589926(88587026)
CUUG热门培训课程
Oracle DBA就业培训
CUUG名师
网络课程
技术沙龙
最新动态

总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089 
中国UNIX用户协会 Copyright 2010  ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号  京公网安备110108006275号