专有连接 ---   客户端的用户进程和服务器进程一一对应,用户进程不直接访问数据库,而是将请求发给服务器进程,让服务器进程执行具体的命令并返回结果。   这个连接用于专门处理该客户端的所有请求,直到用户主动断开连接或网络出现中断。在连接处于空闲时,后台进程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)连接相关推荐

  1. ORACLE专有模式与共享模式

    专有模式:当一个用户请求连接到ORACLE的时候,ORACLE会专门的为这个user process 分配一个server process. 共享模式:一个server process可以服务多个us ...

  2. ftp无法与服务器建立连接_建立与Oracle数据库服务器连接的两种连接模式

    建立与Oracle数据库服务器连接的两种连接模式(专用服务器与共享服务器) 在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式.在Orac ...

  3. mysql连接池永驻_【学习笔记】Oracle连接池 数据库常驻连接池(Database Resident Connection Pool)案例介绍...

    天萃荷净 分享一篇关于应用程序与Oracle数据库连接的连接方法介绍,数据库常驻连接池(Database Resident Connection Pool)案例介绍 一.介绍常驻连接池(Databas ...

  4. Oracle 11g新特性之缓存与连接池

    Oracle 11g新特性之缓存与连接池 上一篇 /下一篇  2008-03-26 16:03:19 / 个人分类:Oracle 数据库 11g面向 DBA 和开发人员的重要新特性 查看( 414 ) ...

  5. python oracle连接池_python - DBUtils 连接池减少oracle数据库的连接数

    问题: 接到需求,告知项目的oracle连接次数过多,对系统造成太过大的负担,要求减少oracle数据库的连接次数 分析: 仔细分析代码以后,发现产生问题的原因,在于之前要求提升oracle监控的监控 ...

  6. Oracle VM VirtualBox创建虚拟机教程并解决连接网路问题和连接Xshell

    Oracle VM VirtualBox创建虚拟机教程并解决连接网路问题和连接Xshell 一.安装Virtual Box 1.什么是Virtual Box: VirtualBox 是一款开源虚拟机软 ...

  7. oracle in的用法_oracle 左连接、右连接、全外连接、内连接、以及 (+) 号用法

    Oracle中的连接可分为,内连接(INNER JOIN).外连接(OUTER JOIN).全连接(FULL JOIN),不光是 Oracle,其他很多的数据库也都有这3种连接查询方式. Oracle ...

  8. 无线网卡实现AP 热点功能,共享Internet连接设置

    1. 首先确定无线网卡是否支持AP热点功能 windows 命令提示符中输入 "netsh wlan show drivers". 命令输出中,有一行""支持的 ...

  9. weblogic oracle连接池配置文件,weblogic连接池的配置

    Weblogic中访问oracle数据库的连接池可以采用三种JDBC方式进行配置 一 在weblogic console中按如下配置 建立connection pool ,并修改startWeblog ...

最新文章

  1. 为什么抢红包抢不过别人?学了这个算法就明白了!
  2. 芯片植入:“增强人类”的生物黑科技
  3. 连接redis的linux命令,redis常见操作命令
  4. 【 数字信号处理 】定点数的表示之二进制数的原码与补码
  5. python面向对象生动讲解_Python面向对象语法精讲
  6. BZOJ2038 : [2009国家集训队]小Z的袜子(hose)(莫队算法)
  7. C# 实现复杂对象的序列化与反序列化
  8. iphone升级ios7之后出现蓝框框一直跳的问题
  9. 常见的一些正则表达式!
  10. 基于CC2430的基础实验5---时钟模式
  11. 20个免费的SEO网站分析工具
  12. 学计算机的什么是镜像,一、什么是windows镜像?什么是Ghost?它们有什么优缺点?...
  13. 嵌入式文件服务器,嵌入式文件服务器
  14. Android热更新
  15. 深度学习_深度学习基础知识_Internal Covariate Shift
  16. 程序员必读:“五险一金”详解!
  17. 这才叫爷们! --转载
  18. wo de wen zhang
  19. DockWidget
  20. 墨尔本大学计算机科学要求,墨尔本大学新开设计算机科学硕士(附详细学分要求)...

热门文章

  1. 第1关:length()方法与compareTo()方法的使用 - 花名册
  2. C#使用StreamReader类和StreamWriter类读写文本文件
  3. python库、包及模块的关系
  4. java PDF最后一页添加空白页
  5. 数组实现猴子选大王问题(C语言)
  6. 交换平台(一)第一章:数据交换平台的一些基本概念
  7. python web 上传文件
  8. C++ STL常用库的使用方法(下)
  9. opencv: dataType
  10. 可重复读(Repeatable read)能防住幻读吗?