建立与Oracle服务器连接的两种连接模式
在建立Oracle数据库的时候 应该会在数据库建立助手向导上面看到这么一个选项 就是数据库的连接模式采用什么方式 在Oracle i或者 g中 可以看到有 种连接模式 一种叫做专用服务器连接(dedicated server) 另外一种叫做共享服务器连接(shared server) 下面我们来分类说一下这两种连接方式的不同点
专用服务器模式就是说每次在对Oracle进行访问的时候 Oracle服务器的Listener会得到这个访问请求 然后回为这个访问创建一个新的进程来进行服务 所以说 对于每一个客户端的访问 都会生成一个新的进程进行服务 是一种类似一对一的映射关系 这种连接模式的一个很重要的特点就是UGA(用户全局域)是存储在PGA(进程全局域)中的 这个特性也很好说明了当前用户的内存空间是按照进程来进行分配的
而另外的共享服务器连接则是一种在程序编写的时候通常会用到的连接池(pool)的概念 采用这种模式的话 在数据库的初始化的时候就会创建一批服务器连接的进程 然后把这些连接进程放入一个连接池来进行管理 初始化的池中的进程数量在数据库初始化建立的时候是可以手动设置的 在连接建立的时候 Listener首先接受到客户端的建立连接的请求 然后Listener去生成一个叫做调度器(dipatcher)的进程与客户端进行连接 调度器把把客户端的请求放在SGA(系统全局域)的一个请求队列中 然后再共享服务器连接池中查找有无空闲的连接 然后让这个空闲的服务器进行处理 处理完毕以后再把处理结果放在SGA的相应队列中 调度器通过查询相应队列 得到返回结果 再返回给客户端 这种连接模式的优点在于服务器进程的数量可以得到控制 不大可能出现因为连接人数过多而造成服务器内存崩溃 但是由于增加了复杂度以及请求相应队列 可能性能上有所下降
lishixinzhi/Article/program/Oracle/201311/18617
2023-07-25 广告