牛骨文教育服务平台(让学习变的简单)
博文笔记

oracle process和session

创建时间:2017-04-21 投稿人: 浏览次数:244
session  是通讯双方从开始通讯到结束期间的一个上下文。这个上下文位于服务端的内存,记录了本次连接的客户机器,哪个应用程序,哪个用户等
session和connection同时建立,两者是一件事情的不同层次的描述。conection是物理是哪个的客户机跟服务器的通信链路,session是逻辑上的用户同服务器的通信交互。
在oracle中,如果要登陆,用户需要create session权限,oracle允许同一个用户在同一个ip上建立多个服务器连接。比如sqlplus一个connection对应一个session;后台进程PMON每个一段时间检测用户连接状态,如果连接断开,PMON清理现场,释放相关资源。

对应关系:sessions=1.1 * processes + 5

session和process的区别联系:
 1,一个process可以有0个、1个或者多个session,一个 session也可以存在若干个process中,并行同样是一个session对应一个process,主session是coordinator session,每个parallel process同样会对应数据库里一个单独的session。可以从v$px_session和v$session中验证这点
 2,每个login称为一个连接(connection),而每个连接,可以产生一个或多个会话;

 如果数据库运行在专用服务器方式,一个会话对应一个服务器进程(process),如果数据库运行在共享服务器方式,一个服务器进程可以为多个会话服务

一些视图:

select * from v$resource_limit; 
select count(1) from v$session;
select count(1) from v$process;
select p.program,s.server,s.username from v$session s , v$process p
 where s.paddr = p.addr

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。