专用连接
在专用连接中,每一个连接到数据库服务器的客户端请求,服务器会和客户端之间建立起连接,这个连接用于专门处理该客户端的所有请求,直到断开。在连接的时候,首先要创建PGA(程序全局区),参数pga_aggregate_target 决定可以由所有服务器进程使用的内存的总量,参数workarea_size_policy 决定是用手动管理还是自动管理。而Pga由三部分构成,其中有可以配置的 sort_area_size,还有会话信息,堆栈空间。在专用连接中,连接所需要的资源全部在PGA中分配。该内存区为指定连接私有,其它进程不能访问。专用连接采用一对一的连接方式,能很的响应用户的请求,但是,如果连接用户太多时,由于要对每一个连接分配资源,因此,连接数受硬件限制比较大。
共享连接
共享连接用一个服务器的进程响应多个用户连接,与专用连接有连接时才创建PGA不同,共享连接在实例一启动,就分配指定数量的服务器进程,所用户的连接,以排队的方式,由分配器指定给服务器进程,其它的进程排队等待。只要用户的请求一执行完,就会马上断开连接,分配器会把空闲的服务器进程分配给其它等待的进程。在共享连接中,sort_area_size 将在 SGA 的 Large_pool 中分配。
应用场景
专用连接:长事务或大事务,如OLTP系统(联机事务处理过程)
共享连接:超短事务和短事务、小事务,如网站