Oracle数据库连接与会话

连接与会话当使用SQL*Plus和TOAD之类的工具建立与数据库之间的连接时,应该明确连接与会话的区别。连接并不是会话的同义词。一个连接可能有零个、一个或多个建立在其上的会话。每个会话是分开且独立的,

连接与会话 当使用SQL*Plus和TOAD之类的工具建立与数据库之间的连接时,应该明确 连接与会话的区别。 连接并不是会话的同义词。一个连接可能有零个、一个或多个建立在其上的 会话。每个会话是分开且独立的,即使他们共享一个同样的物理连接到数据库。 会话中的某个提交并不影响在该连接上的任何其他会话。事实上,使用该连接的 每个会话可以使用不同用户身份。在Oracle中,一个连接是一个在客户端进程 与数据库实例之间的物理线路——网络连接。该连接可能是一个专用服务器进程 或一个调度进程。一个连接可以有零个或更多的会话,即一个连接的存在并不一 定伴随着对应的会话存在。另外,一个会话不一定有连接。一个物理连接可以被 客户端删除,只保留一个空闲会话。当客户端要在该会话中完成一些操作时,就 需要重新建立物理连接。 ·连接:一个连接是一个从客户端到一个数据库实例的物理通道。一个连接 或者通过网络或者通过IPC机制建立连接。最典型的连接是建立在客户端进程和 专用服务器或共享服务器之间。然而,使用Oracle的连接管理器(CMAN)时, 一个连接可以是在客户端与CMAN之间或CMAN与数据库之间。 ·会话:一个会话是存在于实例中的逻辑实体。它是一个表示唯一会话的内 存数据结构的集合,用于执行SQL、提交事务并运行服务器中存储过程等。 实际上,一个连接有多个会话是非常普遍的。使用SQL*Plus可以说明连接 和会话间的区别。使用autotrace命令时可产生两个会话。通过一个使用单个进 程的连接也可以建立两个会话。首先,执行以下操作。 SQL>select username,sid,serial#,server,paddr,status from v$session where username=USER / USERNAME SID SERIAL#SERVER PADDR STATUS ----------- --- ------ ------ ------------ ----- OPS$TKYTE 153 3196 DEDICATED AE4CF614 ACTIVE

腾讯文库Oracle数据库连接与会话