暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Oracle连接&会话

DB小榴莲 2020-10-30
1566

ORACLE中的连接与会话的区别:

简单说,一个是连接,一个是逻辑连接。

Connection对应的是物理连接,Session对应的是逻辑连接。两者是对同一件事情的不同层面的描述。

Connection的建立需要底层物理链路,或者服务器本地IPC机制正常,Session的建立则需要依赖于底层Connection的建立,是一个逻辑层面的连接,是存储在SGA中的用来表示特定会话的一组内存中的数据结构。

 

在ORACLE中,Connection只是客户进程和数据库实例之间的一条特殊线路,最常见的就是网络连接,从客户端连接到一个专用服务器进程,或者调度程序。

 

可以这么说,连接不等于会话,因为会话是建立在连接之上的,在一条连接上可以建立0个、一个或多个会话。多个会话是单独而且独立的,即使它们共享同一条物理连接。一个会话中的提交不会影响该连接(物理链接)上的任何其他会话。实际上,一条连接上的各个会话可以使用不同的用户身份!

 

当使用高级Oracle Net特性(如连接池)时,客户可以删除一条物理连接,而会话依然保留(此时会话为空闲状态)。当客户端使用这个会话执行某个操作时,它会重新建立物理连接。这说明一个会话可以有连接也可以没有连接。

 

可以使用SQL*Plus来查看实际连接和会话是什么,还可以了解到,实际上一条连接有多个会话的情况。使用AUTOTRACE命令测试。

SQL> col username for a10
SQL> set linesize 200
SQL> select  username,sid,serial#,server,paddr,status from v$session where username = 'TEST001';
USERNAME          SID   SERIAL# SERVER    PADDR            STATUS
---------- ---------- ---------- ------------------------- --------
TEST001          4795      10763 DEDICATED 0700010EB97126D8ACTIVE
SQL> set autotrace on statistics
SQL> selectusername,sid,serial#,server,paddr,status from v$session where username = 'TEST001';
USERNAME          SID    SERIAL# SERVER    PADDR            STATUS
---------- ---------- ----------  --------- ---------------- --------
TEST001          4795      10763 DEDICATED 0700010EB97126D8 ACTIVE
TEST001          4796      20591 DEDICATED 0700010EB97126D8 INACTIVE
 
Statistics
----------------------------------------------------------
           0  recursive calls
           0  db block gets
           0  consistent gets
           0  physical reads
           0  redo size
         999  bytes sent via SQL*Net to  client
         520  bytes received via SQL*Net  from client
           2  SQL*Net roundtrips to/from  client
           0  sorts (memory)
           0  sorts (disk)
           2  rows processed
 

这样一来,我们就有了两个会话,但是这两个会话都使用同一个专用服务器进程,这两个会话使用了同一条连接,因为他们有同样的PADDR值。需要注意,其中一个会话是ACTIVE的,这是因为它正在运行查询。但是这个INACTIVE会话呢?这就是AUTOTRACE会话,它的任务是“监视”第一个会话,并报告它做了什么。 

----------------------------
公众号:DB小榴莲
长按下图二维码关注我,每篇涨点小知识!

最后修改时间:2021-06-23 11:01:17
文章转载自DB小榴莲,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论