Connection & Session

本文探讨了Oracle数据库中连接(Connection)与会话(Session)的概念及其相互关系。一个连接可以建立多个会话,且各会话间提交操作互不影响。通过SQL查询验证了会话与连接的具体状态。

连接(Connection)物理路径

会话(Session)实例中存在的一个逻辑实体。

结论:

一个连接可以建立0个或1个或多个会话

一个会话中的提交不会影响同一条连接上的其他会话。

每个会话可能使用不同的帐户

会话可能使用多个进程,特别是在共享服务器环境中

 

Thomas的实验

SQL> select * from v$version where rownum<2;

 

BANNER

----------------------------------------------------------------

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

 

SQL> select username,sid,serial#,server,paddr,status

  2  from v$session

  3  where username = user;

 

USERNAME                              SID    SERIAL# SERVER    PADDR    STATUS

------------------------------ ---------- ---------- --------- -------- --------

 

NBA                                     9          7 DEDICATED 681E6D0C ACTIVE

 

SQL> set autotrace on statistics;

SQL>  select username,sid,serial#,server,paddr,status

  2   from v$session

  3   where username = user;

 

USERNAME                              SID    SERIAL# SERVER    PADDR    STATUS

------------------------------ ---------- ---------- --------- -------- --------

 

NBA                                     9          7 DEDICATED 681E6D0C ACTIVE

NBA                                    10         18 DEDICATED 681E6D0C INACTIVE

地址相同,使用了同一个专用服务器进程

Statistics

----------------------------------------------------------

          7  recursive calls

          0  db block gets

          2  consistent gets

          0  physical reads

          0  redo size

        719  bytes sent via SQL*Net to client

        503  bytes received via SQL*Net from client

          2  SQL*Net roundtrips to/from client

          0  sorts (memory)

          0  sorts (disk)

          2  rows processed

监视语句set autotrace on使用其他会话的原因:监视本身也需要耗费内存,在不同的会话中观察统计结果,可以对统计结果更加正确的测量

SQL> disconnect

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production中断开

SQL> connect sys/sys as sysdba

已连接。

  1  select username,sid,serial#,server,paddr,status

  2* from v$session

SQL> /

 

USERNAME                              SID    SERIAL# SERVER    PADDR    STATUS

------------------------------ ---------- ---------- --------- -------- -------

 

                                        1          1 DEDICATED 681E478C ACTIVE

                                        2          1 DEDICATED 681E4B4C ACTIVE

                                        3          1 DEDICATED 681E4F0C ACTIVE

                                        4          1 DEDICATED 681E52CC ACTIVE

                                        5          1 DEDICATED 681E568C ACTIVE

                                        6          1 DEDICATED 681E5A4C ACTIVE

                                        7          1 DEDICATED 681E5E0C ACTIVE

                                        8          1 DEDICATED 681E61CC ACTIVE

SYS                                     9         57 DEDICATED 681E6D0C ACTIVE

 

已选择9行。

SQL> select username,program

  2  from v$process

  3  where addr = hextoraw('681E6D0C');

 

USERNAME        PROGRAM

--------------- -------------------------------------------------

 

SYSTEM          ORACLE.EXE

但查'681E6D0C'的地址还是有个进程,就说明物理连接并没有断

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22111412/viewspace-611274/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22111412/viewspace-611274/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值