oracle中会话和连接数的简单分析
Posted 金陵大掌柜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中会话和连接数的简单分析相关的知识,希望对你有一定的参考价值。
通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息.
连接(Connection):连接是从客户端到ORACLE实例的一条物理路径。连接可以在网络上建立,或者在本机通过IPC机制建立。通常会在客户端进程与一个专用服务器或一个调度器之间建立连接。
会话(Session) 是和连接(Connection)是同时建立的,两者是对同一件事情不同层次的描述。简单讲,连接(Connection)是物理上的客户端同服务器的通信链路,会话(Session)是逻辑上的用户同服务器的通信交互。
ORACLE中一个用户登录ORACLE服务器的前提,就是该用户具有ORACLE的 “CREATE SESSION”权限。ORACE允许同一个用户在同一个客户机上建立多个同服务器的会话,每个SESSION都代表了用户与服务器的一个交互。就像你用IE浏览器打开博客园网站,然后你再打开一个IE窗口,又打开一个博客园网站。两个IE窗口就相当于两个SESSION, 而物理链路就相当于连接(Connection)。后台进程PMON会每隔一段时间,就会检测用户连接状况,如果连接已断开,PMON会清理现场,释放相关的资源。
一个会话可以有连接也可以没有连接。使用高级Oracle Net特性(如连接池)时,客户可以删除一条物理连接,而会话依然保留(但是会话会空闲)。客户在这个会话上执行某个操作时,它会重新建立物理连接。
举个例子:
有A/B两个城市,需要从A运送白菜到B城
我们先开通一条公路C
然后运送白菜过去,包括准备白菜和运送白菜以及返回等一系列的动作。
一条公路,可以运送0-n次的白菜
当然从A到B的公路也可能不只一条
每一次运送白菜,可以在真正上路时才开通某一条道路
一次运送不会影响别的运送的状态
对应数据库
A代表客户端进程
B代表服务器端进程
公路代表连接,
运送一次白菜代表一个会话
一个连接可以进行多次的会话
一个会话可以不依赖于某个连接,甚至没有连接(当我准备好了,真正开始运送时再建立连接)
一个会话不会影响别的会话
以上是关于oracle中会话和连接数的简单分析的主要内容,如果未能解决你的问题,请参考以下文章