标签:efault stat 记录 revoke module 并行 会话 type ror
首先查看一下v$session都存在哪些列
SYS@ORCL>desc v$session
Name Null? Type
----------------------------------------- -------- ----------------------------
SADDR RAW(4)
SID NUMBER
SERIAL# NUMBER
AUDSID NUMBER
PADDR RAW(4)
USER# NUMBER
USERNAME 2 VARCHAR2(30)
COMMAND NUMBER
OWNERID NUMBER
TADDR VARCHAR2(8)
LOCKWAIT VARCHAR2(8)
STATUS VARCHAR2(8)
SERVER VARCHAR2(9)
SCHEMA# NUMBER
SCHEMANAME VARCHAR2(30)
OSUSER VARCHAR2(30)
PROCESS VARCHAR2(12)
MACHINE VARCHAR2(64)
TERMINAL VARCHAR2(30)
PROGRAM VARCHAR2(48)
TYPE VARCHAR2(10)
SQL_ADDRESS RAW(4)
SQL_HASH_VALUE NUMBER
SQL_ID VARCHAR2(13)
SQL_CHILD_NUMBER NUMBER
PREV_SQL_ADDR RAW(4)
PREV_HASH_VALUE NUMBER
PREV_SQL_ID VARCHAR2(13)
PREV_CHILD_NUMBER 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(4)
P2TEXT VARCHAR2(64)
P2 NUMBER
P2RAW RAW(4)
P3TEXT VARCHAR2(64)
P3 NUMBER
P3RAW RAW(4)
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)
SADDR-——当前会话在内存中的地址
SAD——当前会话的id号
SERIAL# ——会话的串号,当一个会话结束后,另外的会话可能会重用该会话的id号,此时就需要SERIAL#来确定唯一的会话对象。也就是说SID+SERIAL#来确定唯一的会话。
AUDSID——该会话对应的审计会话的id号
PADDR——会话对应的进程地址,关联v$process视图的addr字段可以找到会话对应的操作系统进程。
USER#——会话对应用户的id号,对应dba_users的user_id字段
USERNAME——会话对应用户的USERNAME
COMMAND——正在执行的当前命令类型,记录的是一个数值,要结合下表进行查看
Table 7-5 COMMAND Column of V$SESSION and Corresponding Commands
| 
 Number  | 
 Command  | 
 Number  | 
 Command  | 
| 
 1  | 
 CREATE TABLE  | 
 2  | 
 INSERT  | 
| 
 3  | 
 SELECT  | 
 4  | 
 CREATE CLUSTER  | 
| 
 5  | 
 ALTER CLUSTER  | 
 6  | 
 UPDATE  | 
| 
 7  | 
 DELETE  | 
 8  | 
 DROP CLUSTER  | 
| 
 9  | 
 CREATE INDEX  | 
 10  | 
 DROP INDEX  | 
| 
 11  | 
 ALTER INDEX  | 
 12  | 
 DROP TABLE  | 
| 
 13  | 
 CREATE SEQUENCE  | 
 14  | 
 ALTER SEQUENCE  | 
| 
 15  | 
 ALTER TABLE  | 
 16  | 
 DROP SEQUENCE  | 
| 
 17  | 
 GRANT OBJECT  | 
 18  | 
 REVOKE OBJECT  | 
| 
 19  | 
 CREATE SYNONYM  | 
 20  | 
 DROP SYNONYM  | 
| 
 21  | 
 CREATE VIEW  | 
 22  | 
 DROP VIEW  | 
| 
 23  | 
 VALIDATE INDEX  | 
 24  | 
 CREATE PROCEDURE  | 
| 
 25  | 
 ALTER PROCEDURE  | 
 26  | 
 LOCK  | 
| 
 27  | 
 NO-OP  | 
 28  | 
 RENAME  | 
| 
 29  | 
 COMMENT  | 
 30  | 
 AUDIT OBJECT  | 
| 
 31  | 
 NOAUDIT OBJECT  | 
 32  | 
 CREATE DATABASE LINK  | 
| 
 33  | 
 DROP DATABASE LINK  | 
 34  | 
 CREATE DATABASE  | 
| 
 35  | 
 ALTER DATABASE  | 
 36  | 
 CREATE ROLLBACK SEG  | 
| 
 37  | 
 ALTER ROLLBACK SEG  | 
 38  | 
 DROP ROLLBACK SEG  | 
| 
 39  | 
 CREATE TABLESPACE  | 
 40  | 
 ALTER TABLESPACE  | 
| 
 41  | 
 DROP TABLESPACE  | 
 42  | 
 ALTER SESSION  | 
| 
 43  | 
 ALTER USER  | 
 44  | 
 COMMIT  | 
| 
 45  | 
 ROLLBACK  | 
 46  | 
 SAVEPOINT  | 
| 
 47  | 
 PL/SQL EXECUTE  | 
 48  | 
 SET TRANSACTION  | 
| 
 49  | 
 ALTER SYSTEM  | 
 50  | 
 EXPLAIN  | 
| 
 51  | 
 CREATE USER  | 
 52  | 
 CREATE ROLE  | 
| 
 53  | 
 DROP USER  | 
 54  | 
 DROP ROLE  | 
| 
 55  | 
 SET ROLE  | 
 56  | 
 CREATE SCHEMA  | 
| 
 57  | 
 CREATE CONTROL FILE  | 
 59  | 
 CREATE TRIGGER  | 
| 
 60  | 
 ALTER TRIGGER  | 
 61  | 
 DROP TRIGGER  | 
| 
 62  | 
 ANALYZE TABLE  | 
 63  | 
 ANALYZE INDEX  | 
| 
 64  | 
 ANALYZE CLUSTER  | 
 65  | 
 CREATE PROFILE  | 
| 
 66  | 
 DROP PROFILE  | 
 67  | 
 ALTER PROFILE  | 
| 
 68  | 
 DROP PROCEDURE  | 
 70  | 
 ALTER RESOURCE COST  | 
| 
 71  | 
 CREATE MATERIALIZED VIEW LOG  | 
 72  | 
 ALTER MATERIALIZED VIEW LOG  | 
| 
 73  | 
 DROP MATERIALIZED VIEW LOG  | 
 74  | 
 CREATE MATERIALIZED VIEW  | 
| 
 75  | 
 ALTER MATERIALIZED VIEW  | 
 76  | 
 DROP MATERIALIZED VIEW  | 
| 
 77  | 
 CREATE TYPE  | 
 78  | 
 DROP TYPE  | 
| 
 79  | 
 ALTER ROLE  | 
 80  | 
 ALTER TYPE  | 
| 
 81  | 
 CREATE TYPE BODY  | 
 82  | 
 ALTER TYPE BODY  | 
| 
 83  | 
 DROP TYPE BODY  | 
 84  | 
 DROP LIBRARY  | 
| 
 85  | 
 TRUNCATE TABLE  | 
 86  | 
 TRUNCATE CLUSTER  | 
| 
 91  | 
 CREATE FUNCTION  | 
 92  | 
 ALTER FUNCTION  | 
| 
 93  | 
 DROP FUNCTION  | 
 94  | 
 CREATE PACKAGE  | 
| 
 95  | 
 ALTER PACKAGE  | 
 96  | 
 DROP PACKAGE  | 
| 
 97  | 
 CREATE PACKAGE BODY  | 
 98  | 
 ALTER PACKAGE BODY  | 
| 
 99  | 
 DROP PACKAGE BODY  | 
 100  | 
 LOGON  | 
| 
 101  | 
 LOGOFF  | 
 102  | 
 LOGOFF BY CLEANUP  | 
| 
 103  | 
 SESSION REC  | 
 104  | 
 SYSTEM AUDIT  | 
| 
 105  | 
 SYSTEM NOAUDIT  | 
 106  | 
 AUDIT DEFAULT  | 
| 
 107  | 
 NOAUDIT DEFAULT  | 
 108  | 
 SYSTEM GRANT  | 
| 
 109  | 
 SYSTEM REVOKE  | 
 110  | 
 CREATE PUBLIC SYNONYM  | 
| 
 111  | 
 DROP PUBLIC SYNONYM  | 
 112  | 
 CREATE PUBLIC DATABASE LINK  | 
| 
 113  | 
 DROP PUBLIC DATABASE LINK  | 
 114  | 
 GRANT ROLE  | 
| 
 115  | 
 REVOKE ROLE  | 
 116  | 
 EXECUTE PROCEDURE  | 
| 
 117  | 
 USER COMMENT  | 
 118  | 
 ENABLE TRIGGER  | 
| 
 119  | 
 DISABLE TRIGGER  | 
 120  | 
 ENABLE ALL TRIGGERS  | 
| 
 121  | 
 DISABLE ALL TRIGGERS  | 
 122  | 
 NETWORK ERROR  | 
| 
 123  | 
 EXECUTE TYPE  | 
 157  | 
 CREATE DIRECTORY  | 
| 
 158  | 
 DROP DIRECTORY  | 
 159  | 
 CREATE LIBRARY  | 
| 
 160  | 
 CREATE JAVA  | 
 161  | 
 ALTER JAVA  | 
| 
 162  | 
 DROP JAVA  | 
 163  | 
 CREATE OPERATOR  | 
| 
 164  | 
 CREATE INDEXTYPE  | 
 165  | 
 DROP INDEXTYPE  | 
| 
 167  | 
 DROP OPERATOR  | 
 168  | 
 ASSOCIATE STATISTICS  | 
| 
 169  | 
 DISASSOCIATE STATISTICS  | 
 170  | 
 CALL METHOD  | 
| 
 171  | 
 CREATE SUMMARY  | 
 172  | 
 ALTER SUMMARY  | 
| 
 173  | 
 DROP SUMMARY  | 
 174  | 
 CREATE DIMENSION  | 
| 
 175  | 
 ALTER DIMENSION  | 
 176  | 
 DROP DIMENSION  | 
| 
 177  | 
 CREATE CONTEXT  | 
 178  | 
 DROP CONTEXT  | 
| 
 179  | 
 ALTER OUTLINE  | 
 180  | 
 CREATE OUTLINE  | 
| 
 181  | 
 DROP OUTLINE  | 
 182  | 
 UPDATE INDEXES  | 
| 
 183  | 
 ALTER OPERATOR  | 
 
  | 
 
  | 
OWNERID——如果值为2147483644,则此列的内容无效。否则此列包含拥有可移植会话的用户标符。对于利用并行从服务器的操作,将这个值解释为一个48 字节的值。其低位两字节表示会话号,而高位字节表示查询协调程序的实例ID。
TADDR——当前有活动事务的地址,关联v$transaction视图的addr可以查出当前session正在使用的回滚段的信息以及当前事务大小等情况。
LOCKWAIT——当前会话正在等待的锁的地址,如果没有等待锁则为null。
STATUS——当前会话的状态
l ACTIVE:正在执行SQL语句
l INACTIVE:会话不是活动状态,正在等待要执行的SQL语句。
l KILLED:被标记为已经杀死
l CACHED:会话被oracle *XA缓存起来使用。不是太懂,两端提交?。。
l SNIPED :会话在等待client端的响应。
SERVER——数据库提供服务的方式
l Dedicated:专用服务器模式
l Shared:共享服务器模式
SECHEMA#——模式用户标识符
SECHEMANAME——模式用户名
OSUSER——会话的客户端系统的用户名
PROCESS——会话客户端进程id号
附:
关于v$process与v$session中process的理解
说明
    v$session有个process字段,V$PROCESS有个SPID字段,这两个字段是不是一个意思呢?是不是都代表会话的操作系统进程呢?
官方文档上的解释:
SPID      VARCHAR2(12)  Operating system process identifier
PROCESS   VARCHAR2(9)   Operating system client process ID
本文以数据库服务器安装在linux上为例进行说明。
    V$PROCESS中的SPID表示的是操作系统的进程,v$session中的process表示客户端进程ID,即客户端进程在客户端机器上的进程ID号。一个表示客户端进程在客户端机器上的进程号,一个表示服务器进程在服务器上的进程号。
    连接服务器的会话,发起会话的客户端进程可能是unix进程,也可能是windows进程。
MACHINE——操作系统机器名
TERMINAL——操作系统系统终端名称
可以根据主terminal查询客户端的ip
select utl_inaddr.get_host_address(terminal) from v$session where username is not null;
PROGRAM——操作系统通过什么程序连接oracle。通过本机连接的session,一般都有program。如果是通过服务器连接的session,一般都没有program。
TYPE——会话的类型。是用户创建的还是后台进程创建的。
SQL_ADDRESS和SQL_HASH_VALUE——一起来确定正在执行的SQL语句。关联v$sql,v$sqltext,v$sqlarea。
SQL_ID——正在执行的SQL语句的id
SQL_CHILD_MUMBER——正在执行的SQL语句的子句。
PREV_......前一句执行的SQL语句的信息。
MODULE——用户通过DBMS_APPLICATION_INFO.SET_MODULE进行的一些设置的名字
MODULE_HASH——MODULE的hash值
ACTION——用户通过DBMS_APPLICATION_INFO.SET_ACTION进行的一些设置的名字
ACTION_HASH——ACTION的HASH值
CLIENT_INFO——用户通过DBMS_APPLICATION_INFO.SET_CLIENT_INFO进行一些设置的相关信息。
FIXD_TABLE_SEQUENCE——当session完成一个user call后就会增加的一个数值,也就是说,如果session挂起,它就不会增加。因此可以根据这个字段来监控某个时间点以来的session性能情况。例如,一个小时前某个session的此字段数值为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_ROW#——session当前正在等待的被锁定的行。
LOGON_TIME——会话登录的时间
LAST_CALL_ET——如果会话是ACTIVE状态则表示了会话已经持续ACTIVE状态多久。如果会话是INACTIVE状态则表示会话已经处于INACTIVE状态多久。
PDML_ENABLED——这列已经被PDML_STATUS列取代,那么PDML_STATUS列代表了什么。如果是ENABLED则代表了这个会话执行DML语句可以使用oracle的并行执行技术,如果是DISABLE则代表了这个会话执行DDL语句禁止使用oracle并行执行技术。
PDDL_STATUS——和PDML_STATUS差不多,只不过这个是针对DDL语句的。
PQ_STATUS——也和以上两条差不多,只不过这个是针对select语句的。Q代表query。
CURRENT_QUEUE_DURATION——如果值为1则代表session已经在队列中,如果是0则代表还没有形成排队。
CLIENT_IDENTIFIER——客户端会话的标识符。
BLOCKING_SESSION_STATUS 
VALID 状态valid为正在等待
NO HOLDER 
GLOBAL
NOT IN WAIT
UNKNOWN
发生阻塞时候可以查询
到了10G,多了blocking_session 和 blocking_session_status字段,可以知道是否被阻塞。如果blocking_session_status字段是VALID,那一个有效的SID会出现在blocking_session 字段。
SQL>  select sid, sql_id,  PREV_SQL_ID , BLOCKING_SESSION_STATUS , BLOCKING_SESSION ,WAIT_CLASS_ID,SECONDS_IN_WAIT   ,WAIT_CLASS   from v$session  where
  2   username=‘KONG‘;
       SID SQL_ID        PREV_SQL_ID   BLOCKING_SESSION_STATUS           BLOCKING_SESSION WAIT_CLASS_ID SECONDS_IN_WAIT WAIT_CLASS
---------- ------------- ------------- --------------------------------- ---------------- ------------- --------------- ----------------------------------------------------------------
       290 0hcsvq77pq2a8 dyk4dprp70d74 VALID                                          300    4217450380             118 Application
       300               0hcsvq77pq2a8 NO HOLDER                                             2723168908             124 Idle
可以看到290 的进程被300的进程阻塞。
在以前如果想要查询某个session执行了那个sql语句,那需要用两个字段来查询: HASH_VALUE和ADDRESS。现在只有一个SQL_ID就可以了。
SQL> select  sql_text from v$sqltext st, v$session s
  2  where (st.sql_id = s.sql_id ) and s.sid=300;
SQL_TEXT
----------------------------------------------------------------
select count(*) from t2
BLOCKING_INSTANCE——模块化的实例标识符
BLOCKING_SESSION——模块化的session标识符
SEQ#——不唯一的标示每个等待的序列号
EVENT#——事件数量
EVENT——oracle的session正在等待的数据或者事件
P1TEXT——首个附加参数的描述
P1——首个附加参数
P1RAW——首个附加参数和前一个区别我还不是很懂
P2TEXT——第二个附加参数的描述
P2——第二个附加参数
P2RAW——第二个附加参数
P3TEXT——第三个附加参数的描述
P3——第三个附加参数
P3RAW——第三个附加参数
WAIT_CLASS_ID——标记等待事件种类
WAIT_CLASS#——等待事件的种类
WAIT_CLASS——等待事件的名称
WAIT_TIME——非0代表上一次session上次等待时间,0代表session当前正在等待
SECONDS_IN_WAIT——等待的时间
oracle文档的资料:
  If WAIT_TIME = 0, then SECONDS_IN_WAIT is the seconds spent in the
  current wait condition. If WAIT_TIME > 0, then SECONDS_IN_WAIT is the
  seconds since the start of the last wait, and SECONDS_IN_WAIT - WAIT_
  TIME / 100 is the active seconds since the last wait ended.
STATE
0 - WAITING (the session is currently waiting)
-2 - WAITED UNKNOWN TIME (duration of last wait is unknown)
-1 - WAITED SHORT TIME (last wait <1/100th of a second)
>0 - WAITED KNOWN TIME (WAIT_TIME = duration of last wait)
SERVICE_NAME——session的服务名称
SQL_TRACE——标示sql是否能被跟踪
SQL_TRACE_WAITS——标记是否等待事件被跟踪
SQL_TRACE_BINDS——标记是否绑定跟踪可用与否
标签:efault stat 记录 revoke module 并行 会话 type ror
原文地址:https://www.cnblogs.com/husam/p/10242510.html