表结构信息(常用的部分列)
--v$session视图的个别字段详情
saddr(session address):表示当前记录的内存地址;
paddr(process address):该session对应的进程地址,关联v$process的addr字段,可以通过这个字段查出当前session对应操作系统的哪个进程的id;
taddr(transation address):当前有活动事务的地址,关联v$transaction表的addr,通过这个字段关联查出当前session正在使用的回滚段的情况,以及当前事务的大小等信息
PROGRAM 操作系统程序名,通过本机连接的session,一般都有program。如果是通过服务器连接的session,一般都没有program。
TYPE 会话类型一般有两个类型:background(后台进程)、user(用户)
看到一个会话,我们首先要区分该会话的类型是什么,即查看v$session视图时首先要看TYPE字段,因为v$session视图中字段PROGRAM、PROCESS、OSUSER、MACHINE、TERMINAL在TYPE字段为不同值时有不同意义:
当TYPE字段为background时,以上几个字段表示的是服务端的操作系统上的意义;
当TYPE字段为user时,以上几个字段表示的是客户端的操作系统上的意义。
AUDSID字段:
If AUDSID=0, then就是 Oracle后台进程产生的一个会话。
If AUDSID=4294967295, then说明是sys用户产生的一个会话。
If 0<AUDSID<4294967295,then说明是普通用户产生的一个会话。
STATUS:ACTIVE、INACTIVE、KILLED、CACHED、SNIPED五个状态,一般比较常见的有ACTIVE、INACTIVE、KILLED三个状态。
ACTIVE :处于此状态的会话,表示正在执行,处于活动状态。
INACTIVE :处于此状态的会话表示不是正在执行的
KILLED :处于此状态的会话,表示出现了错误或进程被杀掉,正在回滚,当然,这个状态的会话也占用系统资源的。KILLED的状态一般会持续较长时间。
CACHED : Session temporarily cached for use by Oracle*XA
SNIPED : Session inactive, waiting on the client。 标记为SNIPED的进程被释放有两种条件:
1、相关的terminal再一次试图登录及执行sql
2、手动的在操作系统后台kill掉相应的spid