oracle辅导:SharedPool与processes参数的关系
来源:优易学  2011-2-15 15:20:09   【优易学:中国教育考试门户网】   资料下载   IT书店

 名称 是否为空? 类型

  ----------------- -------- ---------------

  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

  2152CA50

  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申请了一片连续的空间来保存此数组,大家都知道数组结构是不能动态扩大的,不像队列或者线性链表。

上一页  [1] [2] [3] [4] [5] 

责任编辑:虫虫

文章搜索:
 相关文章
热点资讯
热门课程培训