##第三. 用户连接
1. 用户会话: 专用服务器
使用专用服务器进程时,服务器进程与用户进程之间的比例是一比一。每个服务器进程都会使用系统资源,包括CPU 周期和内存。
在负荷很高的系统中,由于专用服务器进程占用了内存和CPU 资源,因而会对系统的可伸缩性产生负面影响。如果专用服务器体系结构的资源需求对系统产生了负面影响,您有下列两种选择: • 通过增加更多的内存和额外的CPU 容量来增加系统资源 • 使用Oracle 共享服务器体系结构
2. 用户会话: 共享服务器
每个参与共享服务器体系结构的服务均至少具有一个(通常为多个)分派程序进程。连接请求到达时,监听程序将不衍生专用服务器进程,而是维护一个可用于每个服务名的分派程序列表,以及每个分派程序的连接负载(并发连接数量)。
连接请求将被传送至负载最小的分派程序,该程序为给定服务名提供服务。用户在会话持续时间内均一直连接至同一分派程序。
与专用服务器进程不同,单个分派程序可以管理几百个用户会话。实际上分派程序并不处理用户请求的工作,而是将用户请求传递到位于SGA共享池部分的公用队列。
共享服务器进程接管专用服务器进程的大部分工作,将请求从队列中拉出并进行处理,直至完成该请求。由于单个用户会话的请求可能由多个共享服务器进程来处理,因此通常存储在PGA 中的大部分内存结构必须位于共享内存部分(默认情况下在共享池中)。但是,如果配置了大型池,或者为自动内存管理设置了SGA_TARGET,则这些内存结构会存储在SGA 的大型池部分。
不能使用共享服务器的情况
- 数据库管理
- 备份和恢复操作
- 批处理和批量装载操作
- 数据仓库操作