当会话通过客户端连接到Oracle数据库时,根据服务器处理请求方式的不同,可以有两种连接模式,一种称为专用服务器连接(Dedicated Server),另外一种称为共享服务器连接(Shared Server)。
文章目录
一、专用/共享服务器连接
当用户通过会话连接到数据库时,Oracle必须创建相应的进程来对接并服务会话的请求,创建的进程类型可以分为下面两类:
- 专用服务器进程(Dedicated Server Process),每个进程服务单一用户进程。
- 共享服务器进程(Shared Server Process),每个进程服务多个用户进程。
1.1 专用服务器连接
Oracle的默认连接模式是专用服务器连接。
专用服务器连接模式下,每个连接到数据库的用户进程都会创建一个专用服务器进程来对接并处理请求。但是每个专用服务器进程都意味着资源开销。如果连接数较多,且用户进程大部分时间都会处于空闲状态,那么维护大量的专用服务器进程就会出现资源浪费,甚至挤爆内存。
1.2 共享服务器连接
如果有大量的用户连接,共享服务器连接通常是更好的选择,这个模式下的优点是一个服务器进程可以处理多个用户的请求,它可以将服务器进程数量控制在一个较低的数量,更高效的利用资源,并且降低需要维护的进程数。
共享服务器连接需要额外配置,即使配置后,专用服务器进程也是生效的(某些程序只能通过专用服务器模式连接,比如RMAN)。
共享服务器连接模式下,用户进程对接的是调度程序,调度程序将用户请求放入请求队列(每个用户通过virtual circuit标识)。共享服务器会依次处理请求队列的内容,并将处理结果放入响应队列,最后由调度程序取出结果并返回给用户进程(下图所示):