Shared Pool与procees参数的关系(2)_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Shared Pool与procees参数的关系(2)

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:关系参数sharedprocess
黑客防线网安网讯:    list 288  shared pool Background process state 48  shared pool process group array 25352  shared pool ksb process so list 288  shared pool processes 1200  已选择8...
    list 288
  shared pool Background process state 48
  shared pool process group array 25352
  shared pool ksb process so list 288
  shared pool processes 1200
  已选择8行
  修改processes参数的值再次启动系统
  SQL> alter system set processes=500 scope=spfile;
  系统已更改
  shutdown immediate;
  startup;
  SQL> select * from v$sgastat where pool='shared pool' and name like '%process%';
  POOL NAME BYTES
  ------------ -------------------------------------------------- ----------
  shared pool generic process shared st 12
  shared pool ksb ci process list (each 348
  shared pool process count for each CI 288
  shared pool ksb cic process list 288
  shared pool Background process state 48
  shared pool process group array 25352
  shared pool ksb process so list 288
  shared pool processes 2000
  已选择8行。
  
  从上面几次修改processes参数的值可以看出每个进程将会在shared pool中分配4字节内存,那此4字节信息是什么呢?我们查看如下的v$process视图
  SQL> desc v$process;
  名称 是否为空? 类型
  ----------------- -------- ---------------
  ADDR RAW(4)
  PID NUMBER
  SPID VARCHAR2(12)
  USERNAME VARCHAR2(15)
  SERIAL# NUMBER
  TERMINAL VARCHAR2(16)
  PROGRAM VARCHAR2(64)
  TRACEID VARCHAR2(255)
  BACKGROUND VARCHAR2(1)
  LATCHWAIT VARCHAR2(8)
  LATCHSPIN VARCHAR2(8)
  PGA_USED_MEM NUMBER
  PGA_ALLOC_MEM NUMBER
  PGA_FREEABLE_MEM NUMBER
  PGA_MAX_MEM NUMBER
  SQL> select addr from v$process;
  
  ADDR
  --------
  21528900
  21528EF0
  215294E0
  21529AD0
  2152A0C0
  2152A6B0
  2152ACA0
  2152B290
  2152B880
  2152BE70
  2152C460
  2152C黑客防线0
  2152D040
  2152D630
  2152DC20
  2152E210
  2152E800
  2152EDF0
  已选择18行。
  字段ADDR字段刚好为4字节 ,在共享池中保存process进程的信息很有可能就是其地址信息,知道了其地址,也就知道了PGA在哪里,从PGA里的数据结构就可以知道系统进程号等等之类的东西。PMON进程也是利用此信息,在pmon timer到来之际,通过地址信息,检查各数据库服务器进程的状态;此地址信息也是执行alter system kill session命令的重要纽带。怎样从Shared Pool到PGA,或者说怎样从PGA到Shared Pool?共享池中保存process进程的信息成了关键性的作用
  顺便提一句,在ORACLE 9i之上,共享池划分了很多的subpool,在实例启动时,oracle根据processes参数的值,只会挑选其中一个子池来保留此信息。
  为什么processes参数是一个静态参数?这跟ORACLE关于此参数的内存申请很有关系,个人猜想,此控制结构的信息是以数组的方式保存的,ORACLE申请了一片连续的空间来保存此数组,大家都知道数组结构是不能动态扩大的,不像队列或者线性链表。
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-11436-1.html
网站维护教程更新时间:2012-03-21 03:21:23  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer