user process+server process+PGA

一个用户发起到数据库的连接过程

当用户发起连接时,oracle创建一个用户进程(user process)来运行这个SQL*Plus。在启动一个用户进程后,通过命令:conn ....建立与数据库的连接。此时oracle会创建一个Server Process来处理连接到实例的用户进程(User Process)提交的请求。用户进程连接到数据库并创建一个会话时,Oracle服务器进程会分配专门用于当前用户会话的内存区,即PGA区,该区域是私有的,当进程创建时分配,进程结束后被释放,只能被一个进程使用。server process在以后代替我们的用户进程,来执行用户进程所发出的command。server process完成与Instance的连接,当一个Instance被激活时,后台的database也就变得可用了。

user process:当一个数据库用户请求连接Oracle服务器开始

  • 一个请求连接Oracle服务器的程序
  • 必须首先建立一个连接
  •  并不直接与Oracle服务器交互


server process:连接oracle实例并当一个用户建立了一个会话时启动

  • 一个与oracle服务器直接交互的程序
  • 负责执行和返回结果
  • 专用服务器(dedicated server)或共享服务器(shared server)

后台进程:当启动oracle instance时启动

PGA:按需分配

PGA内存是一片包含Oracle server进程的数据和控制信息的内存区域。PGA的数量和内容依赖于安装的oracle服务器的选项。这一区域由下列部分组成:

  • 栈空间:存储会话的变量、数组等的内存空间。
  • 会话信息:如果运行的不是多线程服务器,会话信息将保存在PGA中,如果是多线程服务器,则保存在SGA中。
  • 私有SQL区:这是PGA中的一部分,用来保存绑定变量(binding variables)和运行时缓冲区(runtime buffers)等信息。
确定系统大小时一定要考虑到用户使用的内存,因为可能会有数百个用户同时访问oracle数据库服务器。用户进程使用的内存总量将是所有这些用户进程所用内存之和。

设置参数PGA_AGGREGATE_TARGET给一个实例的PGA内存指定总的大小。设置这个参数后,Oracle将它作为一个总的全局限制值,尽量使所有Oracle服务进程的PGA内存总数不超过这个值。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值