连接与会话的区别
- 1.连接时物理层级的,是客户端与服务器之间的一条具体的连接;会话则是逻辑层级的,可以理解是客户端与数据库实例间交流的基础。
- 2.会话可以理解为一个plsql窗口,开启一个窗口也就是新建了一个会话;连接可以理解为一个工作于服务器上的进程(或线程)。当客户端与服务器端用专用服务器模式连接时,这个连接就是一个服务器进程,当用共享模式连接时,这个连接就可能是一个调度进程,反正都是实实在在工作在服务器上的。
- 3.连接与会话并不是一对一的关系,而是一对多的关系
- 一对一:当服务器属于专用服务器模式工作时,会话与连接就是一种最常见的一对一的关系
- 零对一:当用专用服务器模式打开一个会话后,然后disconnect(sqlplus命令窗口)时,这个时候会话断开,但是连接还存在,可以通过v$process查看
- 多对一:当服务器的工作模式为共享服务器时,一个服务器进程就对应多个会话,客户端真正连接的是调度进程,再由调度进程为我们动态地分配服务器进程
- 多对多:这也存在于共享服务器模式下,有时候一个sql会经过几个服务器进程处理