现在的位置: 首页 > 综合 > 正文

Oracle中session 与 connect 连系与区别

2013年10月17日 ⁄ 综合 ⁄ 共 809字 ⁄ 字号 评论关闭

session(会话)和connection(连接)的定义:
connection:是一个物理的概念,它指的是一个通过网络建立的客户端和专有服务器(Dedicated Server)或共享服务器(Shared Server)的一个网络连接,既是一条物理路劲。

session:是一个逻辑的概念,它是存在于实例中,一个连接可以拥有多个会话也可以没有会话,同一个连接上的不同会话之间不会相互影响。

session和connection的区别与联系:
1. 一个用户对应一个session,但不一定对应一个connection ,因为几个session可以共享一个connection。

2. 在dedicated sever(专用服务器)连接模式下,session和connection一一对应,且个数上session = connection。

3. 在shared server(共享服务器)连接模式下, 个数上session >= connection。

4. 在shared server的multiplexing session模式下,session >= connection,且并不一一对应。

下面这位专家的比喻更形象:http://blog.csdn.net/java2000_net/archive/2009/01/06/3719313.aspx

有A/B两个城市,需要从A运送白菜到B城 

我们先建设一条公路 
然后运送白菜过去,包括准备白菜和运送白菜以及返回等一系列的动作。 

一条公路,可以运送0-n次的白菜 
当然从A到B的公路也可能不只一条。 
某一次运送白菜,可以在真正上路时才开通某一条道路 
一次运送不会影响别的运送的状态 

对应数据库 
A代表客户端进程 
B代表服务器端进程 
公路代表连接, 
运送一次白菜代表一个会话 

一个连接可以进行多次的会话 
一个会话可以不依赖于某个连接,甚至没有连接(当我准备好了,真正开始运送时再建立连接) 
一个会话不会影响别的会话

抱歉!评论已关闭.