WEB开发网
开发学院数据库Oracle Shared Pool与processes参数的关系 阅读

Shared Pool与processes参数的关系

 2008-02-19 12:40:29 来源:WEB开发网   
核心提示: BACKGROUND VARCHAR2(1)LATCHWAIT VARCHAR2(8)LATCHSPIN VARCHAR2(8)PGA_USED_MEM NUMBERPGA_ALLOC_MEM NUMBERPGA_FREEABLE_MEM NUMBERPGA_MAX_MEM NUMBERS

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 

Tags:Shared Pool processes

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接