Oracle专有(dedicated)连接和共享(shared)连接
专有连接 --- 客户端的用户进程和服务器进程一一对应,用户进程不直接访问数据库,而是将请求发给服务器进程,让服务器进程执行具体的命令并返回结果。 这个连接用于专门处理该客户端的所有请求,直到用户主动断开连接或网络出现中断。在连接处于空闲时,后台进程PMON会每隔一段时间,测试用户连接状况,如果连接已断开,PMON会清理现场,释放相关的资源。 专用连接相当于一对一的连接,能够快速的响应用户的请求。当然,在连接的时候,首先要创建PGA(Program global area)。因为是专有,所以如果并发非常多,要求的内存大小也不少。
在专用连接中,连接所需要的资源全部在PGA中分配。该内存区为指定连接私有,其它进程不能访问。 专用连接采用一对一的连接方式,能很快的响应用户的请求,但是,如果连接用户太多时,由于要对每一个连接分配资源,因此,连接数受硬件限制比较大
共享连接 --- 为了克服以上硬件资源的问题,Oracle 提出了共享连接的连接方法,即用一个服务器的进程响应多个用户连接,与专用连接有连接时才创建PGA不同,共享连接在实例一启动,就分配指定数量的服务器进程,所用户的连接,以排队的方式,由分配器指定给服务器进程,其它的进程排队等待。只要用户的请求一执行完,就会马上断开连接,分配器会把空闲的服务器进程分配给其它排除的进程。
采用共享连接可以有效的提高服务器资源的利用率,但是对一个分配器,只支持一种协议,每个分配器有自已的排队队列,在请求的任务完成后,由分配器将操作结果返回给相应的用户进程。但是共享连接的建立, 需要Oracle的监听进程、分配器、共享服务器进程才能共同完成一个连接的创建,所以连接的分配也需要一定的时间和资源。
在共享连接中,sort_area_size 将在 SGA 的 Large_pool 中分配。
上面所说的是两种连接的创建方法和管理方法,在理想的情况下,对于长事务或大事务,使用专用连接,可以有效的提高系统的性能,减少用户等待和事务的排队,提高系统的利用率。对于超短事务和短事务、小事务,使用共享连接方式,可以在资源与效率之间达到一种平稀。比如对于OLTP 系统,使用专用连接,而对于网站等,可以使用共享连接。
那么,能不能在OLTP系统中使用共享连接呢?如果能使用,那么,能不能提高性能呢?
OLTP系统,一般而言,有较多的长事务和大事务,如用户的某几步操作,必须作为一个事务。对于这种情况,我们分析一下,看看,会发生什么样的情况:
分析首先有一个前提,那就是用户请求数要大于共享服务器进程数,否则,减去分配器管理性能支出,共享连接的性能要低于专用连接。
如果用户请求数大于共享服务器进程数,那么肯定有请求是在排队,假定目前一个共享服务器进程正在执行一个长事务,那么请求队列就要一直等,直到当前的事务结束。从用户请求的角度看,很明显,响应的时间加长了。从服务器角度看,我们先看一下由网友 WESTLIFE_XU 提供的实例:
共享连接和长事务是背道而驰的,长事务的共享连接会造成shared 进程的严重排队,造成性能的严重下降,给你看一个极端的例子,以前的同事公司的。
举个例子,200个request共享比说10个共享进程,每个shared进程在一个时间内只能处理一个request,也就是说10个进程在同一时间内只能处理10个request,如果一个request需要很长的处理,会造成其它请求的严重排队。
shared进程要求客户端的每个request要特别快,如果客户端的一个request就占了很长时间,那别的request就得一直等着,共享就没有什么意义了。
从上面可以看出,如果在有大事务和长事务的OLTP系统中,系统会比原来更慢!
综合来看,共享连接和专用连接各有所长,关键是看应用,能适用于自已应用的连接方式,就是好方式。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-676634/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-676634/
Oracle专有(dedicated)连接和共享(shared)连接相关推荐
- ORACLE专有模式与共享模式
专有模式:当一个用户请求连接到ORACLE的时候,ORACLE会专门的为这个user process 分配一个server process. 共享模式:一个server process可以服务多个us ...
- ftp无法与服务器建立连接_建立与Oracle数据库服务器连接的两种连接模式
建立与Oracle数据库服务器连接的两种连接模式(专用服务器与共享服务器) 在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式.在Orac ...
- mysql连接池永驻_【学习笔记】Oracle连接池 数据库常驻连接池(Database Resident Connection Pool)案例介绍...
天萃荷净 分享一篇关于应用程序与Oracle数据库连接的连接方法介绍,数据库常驻连接池(Database Resident Connection Pool)案例介绍 一.介绍常驻连接池(Databas ...
- Oracle 11g新特性之缓存与连接池
Oracle 11g新特性之缓存与连接池 上一篇 /下一篇 2008-03-26 16:03:19 / 个人分类:Oracle 数据库 11g面向 DBA 和开发人员的重要新特性 查看( 414 ) ...
- python oracle连接池_python - DBUtils 连接池减少oracle数据库的连接数
问题: 接到需求,告知项目的oracle连接次数过多,对系统造成太过大的负担,要求减少oracle数据库的连接次数 分析: 仔细分析代码以后,发现产生问题的原因,在于之前要求提升oracle监控的监控 ...
- Oracle VM VirtualBox创建虚拟机教程并解决连接网路问题和连接Xshell
Oracle VM VirtualBox创建虚拟机教程并解决连接网路问题和连接Xshell 一.安装Virtual Box 1.什么是Virtual Box: VirtualBox 是一款开源虚拟机软 ...
- oracle in的用法_oracle 左连接、右连接、全外连接、内连接、以及 (+) 号用法
Oracle中的连接可分为,内连接(INNER JOIN).外连接(OUTER JOIN).全连接(FULL JOIN),不光是 Oracle,其他很多的数据库也都有这3种连接查询方式. Oracle ...
- 无线网卡实现AP 热点功能,共享Internet连接设置
1. 首先确定无线网卡是否支持AP热点功能 windows 命令提示符中输入 "netsh wlan show drivers". 命令输出中,有一行""支持的 ...
- weblogic oracle连接池配置文件,weblogic连接池的配置
Weblogic中访问oracle数据库的连接池可以采用三种JDBC方式进行配置 一 在weblogic console中按如下配置 建立connection pool ,并修改startWeblog ...
最新文章
- 网络工程师计算机类吗,机房网络工程师 | 网络工程专业的你知道吗?
- 如何做网络推广浅析在网站优化中如更换域名该如何避免降权风险?
- 趣学python3(28)-pygame-蛇身随机运动(可gameover )
- SpringCloud Openfeign
- npm install --save
- 这篇文章来自我的微信朋友圈,并不特别好玩,但能够给创业者补点財务知识...
- Hive 内嵌模式安装指导
- DRILLNET 2.0------第二十章 高温高压钻井水力计算模型
- 如何进行Tuxera NTFS的挂载卷设置?
- Tomcat—启动时控制台显示文字的颜色
- 【Matlab学习笔记】【函数学习】eps
- PxCook安装文件有问题处理办法
- 直播系统解决方案:直播平台如何开发搭建
- 建筑力学与结构【10】
- MFC下载—时间记录
- 素问·金匮真言论原文
- 【Lua从青铜到王者基础篇】第十二篇:Lua错误处理
- 访问HDFS的权限问题:Permission denied: user=xxx, access=WRITE, inode=“xxxxxxxx“:
- Spark SQL 初识
- 【转帖】2018年Windows漏洞年度盘点