欢迎投稿

今日深度:

Oracle OCP之硬解析在共享池中获取内存锁的过程,

Oracle OCP之硬解析在共享池中获取内存锁的过程,oracleocp


转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/38684819

 

1、获得library cache Latch

    (1)在父游标的名柄没有找到SQL语句的文本:select * from gyj_t1 where id=1;

 2、释放library cache Latch

 3、获得shared pool Latch
     (1)搜索FreeList 空闲Chunk
     (2)搜索LRU上可覆盖的chunk
     (3)搜索R-FreeList 空闲Chunk
     (4)如果没空间了,直接ORA-04031错误
 4、释放shared pool Latch

 5、 重新获取library cache Latch (oracle 11g:library cache mutex)
    
        6、获取library cache lock Latch (oracle 11g:library cache mutex)

 7、  释放library cache Latch(oracle 11g:library cache mutex)

            8、获取library cache lock ----》保护父游标的名柄(SQL语句文本,父游标H0的地址)

       9、释放library cache lock Latch

 10、获取library cache Pin Latch
     
      11、获取library cache Pin  --》保护父游标的H0(父游标的H0里面主要记录了子游标的名柄)

 12、释放library cache Pin Latch  (oracle 11g:cursor mutex)

  13、获取library cache lock Latch

      14、获取library cache lock ----》保护子游标的名柄(子游标H0的地址)

  15、释放library cache lock Latch

 16、获取library cache Pin Latch
     
      17、获取library cache Pin  --》保护子游标的H0(子游标的H0里面主要记录了环境,统计信息,绑定变量)

 18、释放library cache Pin Latch

  19、获取library cache Pin Latch
     
      20、获取library cache Pin  --》保护子游标的H6(子游标的H6里面主要记录了执行计划)

 21、释放library cache Pin Latch

 


问怎设置oracle共享池,java池,这些个数值的大小?

同志,这些数值的大小设置是一个比较复杂的问题,特别是在低版本的ORACLE。
建议今后提问题时加上oracle的版本信息和操作系统信息。

回过头来说说这些内存大小的分配。
我们考虑一般性的场景。

首先要考虑的是你的主机有多大内存,
再考虑你的主机是否专用于数据库。

如果你的主机专用于数据库,
则一般 共享池+缓冲区+JAVA池+大型池合起来不要超过主机内存的55%。
此时要注意你的操作系统是64位还是32位,这两种情况ORACLE能够使用的内存上限也完全不同。

往下咱们再来细说共享池 缓冲区 JAVA池 大型池 的分配。
这些池的分配要根据你这个数据库的应用场景来配置。
如果是数据仓库类数据库,则缓冲区要设到尽量大。
如果是交易类数据库,则共享池可匀量多分配一些。

具体数值大小还请多到网上参阅大量相关资料后自己再做定夺。
如果实在没空深入学习,可先按典型配置,并将百分比调高至80%为宜(专用数据库服务器)。

平常运行过程中还得再根据数据库监控报告 (如statspack和awr)做调整优化。
非一时一日之功。
 

Oracle OCP证书的尺寸多大?

与A4纸差不多,比A4纸略短大约1厘米
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2764.html NewsArticle Oracle OCP之硬解析在共享池中获取内存锁的过程,oracleocp 转载请注明出处 :http://blog.csdn.net/guoyjoe/article/details/38684819 1、获得library cache Latch (1)在父游标的名柄没有找到SQL语句的文本:...
评论暂时关闭