oracle _ v$transaction / v$session /v$process

 

摘要:

         情况,代码没有报错(no sqlException and other exception ),断点执行到ps.executeQuery()便结束,前台在打圈圈没有反应

         查了一圈了找到了几句sql,先是在v$session表中查看到当前存在的session记录,看到记录中有正在操作的表,再是kill掉对应的session,之后操作便解决了前面出现的问题

         所以,在这里做个简单的记录:

     

      

        (1)想到了一些问题,jdbc当然不是直接操作数据库的,那么遵循什么协议动态保持自身的状态与“oracle结果集”的游标关闭打开状态一致(这样表述是否正确),使用了什么协议

 
传输层:建立可靠的数据传输。TCP协议
会话层:建立端到端的连接
JDBC 连接远程计算机  是基于socket 的,也就是建立 TCP/IP 可靠的数据连接。
个人认为:属于传输层   

 

 

      既然先提到了v$session和session,那就从“会话”开始: v$session描述的对象是一个当前存在的会话(该会话不是包括当前连接到数据库的会话,这只是数据库前台服务器进程的会话,还有数据库后台进程的会话,它是没有连接的)。

       

根据session id 可以查看当前session正在执行的的事务信息 :

 select * from  v$transaction where addr in (select  taddr from v$session where sid = &sid ) 

 

       重复查询USED_UBLK,USED_UREC可以看到变化,可以估计事务的进度,尤其是长时间的回滚操作,当这两个值为0,回滚也就完成了。

   select a.sid, a.serial#, a.user#, a.username, b.addr,

      b.USED_UBLK,  b.USED_UREC

 from v$transaction b, v$session a

 where b.addr in (select a.taddr from v$session a where a.sid = &sid)

 

          sid : session id   saddr : seesion address  

          serial# : sid会被重用,当sid被重用的时候,searial#会增加,不会重复

     

          taddr : 当前的transaction address ,可以用来关联v$transaction

          status :用来判断session的状态。

                 (1)active,正在执行sql语句 (2)inactive ,等待操作   (3)killed被标注为删除

          server : server type (dedicated or shared)

       

          USER#: session's user id。等于dba_users中的user_id。Oracle内部进程(即后台进程)的user#为0。

          USERNAME: session's username,即表示(服务端数据库里的)哪个数据库用户(而非服务端的操作系统的用户)在使用该会话。等于dba_users中的username。Oracle内部进程(即后台进程)的username为空。

     *“会话”所在的进程信息:    paddr : process address ,关联v$process可以查到当前session所在的进    program : 产生这个进程的应用程序?            terminal : 一般是客户端所在主机的主机名  ?

             附加:

                    当MACHINE=计算机名时,TERMINAL=unkown;MACHINE=工作组/计算机名时,TERMINAL=计算机名

   *“会话”中执行sql语句的相关信息     command : session 正在执行的sql id ,1代表create table 3代表select    sql_address,sql_id,sql_hash_value,sql_child_number:sql正在执行的sql statement , 与v$sql中的address,sql_id,hash_value,child_number对应(可以查看sql语句)      *“会话”属性           (2)    v$session中的process字段值为 xx:xx的解释:           “内容蛮多,再接再励”
 

 

http://www.zhihu.com/question/21142020

 

http://blog.csdn.net/haiross/article/details/17718383 (v$session  && v$process)

猜你喜欢

转载自eighto.iteye.com/blog/2328080
今日推荐