oracle中v$session视图详解和数据模拟变化情况
1、首先查询一下,如下图,我展示了我当前用户名下的某个指定的计算机的会话情况,
2、如果这时我打开一个新的会话窗口(plsql打开sql窗口,写一个查询语句进行执行)。如下图所示,对比上图可发现多了一条记录(sid为277)
3、这时我再次关掉一个会话窗口后,可发现,又少了一个会话为 sid为274
4、需要注意的是如果我新打开窗口,不执行其他语句的话 是不会建立新的会话的。下面新建个表来模拟会话视图中数据的变化,我新建表如下,并有三条数据
5、这时我执行如下sql
6、大家都知道,如果我执行了for update 证明此表已经被锁住了。那么我再新建了窗口执行对表数据的更新如下:可以看到这个语句是一直执行的。
7、下面再查询v$session 的视图情况
8、由上兔脒巛钒图可以看到 视图中的status字段的值为ACTIVE 。Status包含三种状态,其中两种分别是INACTIVE:代表当前会话没有sql执行,我将要等待sql的执行; killed:代漉胜衲仰表当前会话已经被杀死了。那么ACTIVE代表的是当前会话中sql正在执行。由于我们把表锁住了,执行update语句并不能进行表的更新,所以一直是执行状态。下面如果我取消当前用户操作如下图,
9、现在我再来查询视图数据的变化情况如下:状态变成了INACTIVE
10、上述例子中描述了ora罕铞泱殳cle v$session 视图的数据变化情况,也充分展示了,会话何时建立,何时销赦觇殒阻毁,描述了会话的整个生命周期,也模拟了当发生死锁情况下会话视图中状态的变化情况,通过简单的例子来了解v$session视图再好不过了。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:30
阅读量:77
阅读量:28
阅读量:78
阅读量:77