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

2025-04-14 11:55:00
推荐回答(3个)
回答(1):

connect,就是客户端到服务器端的一个物理连接通道。
session,是oracle实例中的一个逻辑组合id。
process,是否则session的一个进程。
他们三者的关系,在这里给你举个例子。
你打电话给你爸,当两边电话拨通时,此时叫做建立了一个connect,然后你这边的电话机就是一个进程,叫做客户端进程,你爸那边的电话机也是一个进程,叫做服务器进程。此时,你跟你爸进行通话,询问你爸身体状况啊什么的,这就是谈话的内容了(也就是你和你爸之间的一个session(会话)),正好此时,你妈过来了要跟你聊两句,那么电话不断,你和你妈聊你儿子的事,此时你和你妈建立了一个session,(也就是谈话内容不同),但是你爸的session并没有断掉,只是暂时挂起了,等你在和你爸谈论他身体的时候,又恢复了session。
通过上面这个例子,你应该大体上了解这三者的关系了吧。
在接着说,一个connect可以有0个,1个,2个甚至多个session
比如你电话接通了,只是有人把电话接起来扔那就去干别的事情了,此时没有人通话,这就是0个session,
只给你父亲同话,完了挂掉电话,这就是一个session
如果在给你你母亲通电话,这就是两个session

同样,假如你跟你父亲通电话的过程中,电话线被风挂断了,通话中断,因为物理线路(connect中断了),但是此时session并没有中断,你父亲仍然在那边(喂,喂,或者说了两句话才发现电话线掉了),其实这就相当于虽然connect断了,但是session仍然存在了一会,最后你父亲发现了这个问题才挂掉电话(就相当于session存活,connect断掉,pmon进程监控到了,然后把这个session干掉,同时把process干掉(也就是把电话机挂机))
明白了吗?

回答(2):

connect,就是客户端到服务器端的一个物理连接通道。 session,是oracle实例中的一个逻辑组合id。 process,是否则session的一个进程。 他们三者的关系,在这里给你举个例子。 你打电话给你爸,当两边电话拨通时,此时叫做建立了一个connect

回答(3):

Session:在计算机中,尤其是在网络应用中,称为“会话”。
Session:在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。
Connect、session、process的区别:
一个数据库的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