Oracle中的Connect/session和process的区别及关系介绍

时间:2022-05-20 19:44:58

Session:在计算机中,尤其是在网络应用中,称为“会话”。 
Session:在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。 

Connectsessionprocess的区别: 
一个数据库的Connect可以有一个或多个session,同时connect也可以有一个或多个process. 
在专业服务器连接方式中,一个session对应一个process,在共享服务器方式中,一个process可以为多个session。 
一个session也可以存在若干个process中,并行同样是一个session对应一个process,主session是coordinator session,每个parallel process同样会对应数据库里一个单独的session。 
可以从v$px_session和v$session查看。 

比如某客户端连接数据库的session和process的值: 

复制代码代码如下:


select * from v$session where terminal='RUIFEI' 


和 

复制代码代码如下:


select * from v$process 
where addr in 
(select paddr from v$session where terminal='RUIFEI') 


如果是专用服务器方式连接,session和process是一样的。 

连接connects,会话sessions和进程pocesses的关系 
每个sqllogin称为一个连接(connection),而每个连接,可以产生一个或多个会话,如果数据库运行在专用服务器方式,一个会话对应一个服务器进程(process),如果数据库运行在共享服务器方式,一个服务器进程可以为多个会话服务。 

oracle中系统process和session的关系 
在SharedServer中的Process 和Oracle 中的Session不是一一对应的,Shared Server中的Process 一个对应着Oracle 中的一个或者一个以上的Session。我在dedicated server机器上试验了 
数据库的session和操作系统process是对应的 
即表示一个session对应一个process,但是一个process未必对应一个session