知识大全 oracle的共享连接和专用连接方式之初探

Posted

篇首语:哪有什么四季,遇见你,四季如春。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oracle的共享连接和专用连接方式之初探相关的知识,希望对你有一定的参考价值。

在专用连接方式中 每一个连接到数据库服务器的客户端请求 服务器会和客户端之间建立起连接 这个连接用于专门处理该客户端的所有请求 直到用户主动断开连接或网络出现中断 在连接处于空闲时 后台进程PMON会每隔一段时间 就会测试用户连接状况 如果连接已断开 PMON会清理现场 释放相关的资源  专用连接相当于一对一的连接 能够快速的响应用户的请求 当然 在连接的时候 首先要创建PGA(Program global area) 参数pga_aggregate_target 决定可以由所有服务器进程使用的内存的总量 参数 workarea_size_policy  决定是用手动管理还是自动管理 如

  SQL> show parameter pga_aggregate_target

  NAME                                 TYPE        VALUE pga_aggregate_target                 big integer

  SQL> show parameter workarea_size_policy

  NAME                                 TYPE        VALUE workarea_size_policy                 string      AUTO

  而Pga由三部分构成 其中有可以配置的 sort_area_size 还有会话信息 堆栈空间

  sort_area_size是用户用来排序的内存空间

  SQL> show parameter sort_area_size

  NAME                                 TYPE        VALUE sort_area_size                       integer    

  如果排序的数据量比较大 排序空间不够用 这时Oracle通过专用算法 对数据进行分段 分段后的数据转移到临时表空间中 在临时表空间中进行排序 完成后 再合在一起 返回给请求的用户 这是大排序为什么使用临时表空间的原因

  在专用连接中 连接所需要的资源全部在PGA中分配 该内存区为指定连接私有 其它进程不能访问

  专用连接采用一对一的连接方式 能很的响应用户的请求 但是 如果连接用户太多时 由于要对每一个连接分配资源 因此 连接数受硬件限制比较大 为了克服这种情况 Oracle 提出了共享连接的连接方法 即用一个服务器的进程响应多个用户连接 与专用连接不同有连接时才创建PGA不同 共享连接在实例一启动 就分配指定数量的服务器进程 所用户的连接 以排队的方式 由分配器指定给服务器进程 其它的进程排队等待 只要用户的请求一执行完 就会马上断开连接 分配器会把空闲的服务器进程分配给其它排除的进程

  采用共享连接可以有效的提高服务器资源的利用率 但是对一个分配器 只支持一种协议 每个分配器有自已的排队队列 在请求的任务完成后 由分配器将操作结果返回给相应的用户进程 但是共享连接的建立 需要Oracle的监听进程 分配器 共享服务器进程才能共同完成一个连接的创建 所以连接的分配也需要一定的时间和资源

  在共享连接中 sort_area_size 将在 SGA 的 Large_pool 中分配

  上面所说的是两种连接的创建方法和管理方法 在理想的情况下 对于长事务或大事务 使用专用连接 可以有效的提高系统的性能 减少用户等待和事务的排队 提高系统的利用率 对于超短事务和短事务 小事务 使用共享连接方式 可以在资源与效率之间达到一种平稀 比如对于OLTP 系统 使用专用连接 而对于网站等 可以使用共享连接

  那么 能不能在OLTP系统中使用共享连接呢?如果能使用 那么 能不能提高性能呢?

  OLTP系统 一般而言 有较多的长事务和大事务 如用户的某几步操作 必须作为一个事务 对于这种情况 我们分析一下 看看 会发生什么样的情况

  分析首先有一个前提 那就是用户请求数要大于共享服务器进程数 否则 减去分配器管理性能支出 共享连接的性能要低于专用连接

  如果用户请求数大于共享服务器进程数 那么肯定有请求是在排队 假定目前一个共享服务器进程正在执行一个长事务 那么请求队列就要一直等 直到当前的事务结束 从用户请求的角度看 很明显 响应的时间加长了 从服务器角度看 我们先看一下由网友 WESTLIFE_XU 提供的实例

  共享连接和长事务是背道而驰的 长事务的共享连接会造成shared 进程的严重排队 造成性能的严重下降     给你看一个极端的例子 以前的同事公司的

  代码:top oracle            m m m R     : oracle oracle            m m m S     : oracle   oracle            m m m R     : oracle oracle            m m m R       : oracle oracle            m m m R       : oracle oracle            m m m R      : oracle oracle            m m m R       : oracle oracle            m m m R   : oracle oracle            m m m R       : oracle oracle            m   m   m S          : oracle oracle            m   m   m S      : oracle oracle         S          : tnslsnr oracle            m m m S       : oraclevidb:~# ps ef|grep oracle           Dec ?         : : ora_s _SERVICEvidb:~# ps ef|grep   oracle          Nov ?         : : ora_s _SERVICEtop 的进程全部都是类似ora_s 的共享服务器进程 服务器负载在 以上

  举个例子 个request共享比说 个共享进程 每个shared进程在一个时间内只能处理一个request 也就是说 个进程在同一时间内只能处理 个request 如果一个request需要很长的处理 会造成其它请求的严重排队

  shared进程要求客户端的每个request要特别快 如果客户端的一个request就占了很长时间 那别的request就得一直等著 共享就没有什么意义了

  从上面可以看出 如果在有大事务和长事务的OLTP系统中 系统会比原来更慢!

cha138/Article/program/Oracle/201311/17945

相关参考

知识大全 ORACLE入门之如何增加ORACLE连接数

ORACLE入门之如何增加ORACLE连接数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  OR

知识大全 Oracle中表的四种连接方式讲解

Oracle中表的四种连接方式讲解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  表的连接是指在

知识大全 Java与Oracle的两种连接方式

Java与Oracle的两种连接方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第一种方式通

知识大全 Oracle数据库中表的四种连接方式讲解

Oracle数据库中表的四种连接方式讲解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  表的连接

聚乙烯燃气管道有哪些连接方式?

聚乙烯管道之间按其连接方式的不同,一般分为热熔连接和电熔连接两种。热熔连接是用专用设备加热管材(或管件)的端面,使其熔化,然后迅速将其贴合,保证有一定的压力,冷却后达到熔接的目的。电熔连接是通过对预埋

知识大全 实例解析Oracle是共享模式还是专用模式

实例解析Oracle是共享模式还是专用模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  是否配

知识大全 .net连接oracle的3种实现方法

这篇文章介绍了net连接oracle的种实现方法有需要的朋友可以才可以一下   方式直接利用NET的oracle驱动连接安装Oracle客户端驱动包找到服务器端安装路径:E:oraclepr

知识大全 Oracle中的外连接简单介绍

Oracle中的外连接简单介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在讲外连接之前先举

知识大全 连接oracle的总结(关于tnsname和监听)

该文是我连接oracle的总结特别适合于程序开发人员与oracle菜鸟  如何配置才能使客户端连到数据库要使一个客户端机器能连接oracle数据库需要在客户端机器上安装oracle

知识大全 Oracle外连接和“+”号的用法

Oracle外连接和“+”号的用法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于外连接Or