oracle 共享池

1.实例:(instance)
  存取和控制数据库的软件机制,它由系统全局区(System Global Area,简称 SGA)和后台进程组成
2.共享池(Share Pool)属于SGA ,由库高速缓存(library cache)和数据字典高速缓存(data dictionary cache)组成
3.库高速缓存
   1):目的共享SQL和PL/SQL代码
   2): 存储SQL或PL/SQL语句文本
   3):存储SQL或PL/SQL语句的语法分析形势
   4):存储SQL或PL/SQL语句的执行方案
   5):服务器进行SQL或PL/SQL时,首先会进入库高速缓存区查找是否有相同的SQL,如果有,就不再进行后续的编译处理,
        直接使用已经编译的SQL和执行计划
     例:使用共享SQL时,必须使用绑定变量的的方式
         select * from emp where sal > 100 与 select * from emp where sal > 101 语句不同
         使用绑定变量的方式V_SAL,当V_SAL=100 或V_SAL=101 时
          select * from emp where sal > V_SAL 语句是相同的
   6):ORACLE使用LRU队列链算法来管理库高速缓存,最近使用并且使用次数最多放在队列的队首(时间优先级高),最长时间使用并且使用次数最少放在队尾,
         当库高速缓存内存已经存满,新SQL进入库高缓存时,队尾SQL被牺牲,队首会指向次段内存。
         例: 有A 、B、C 三个SQL语句 A 执行10次,最后一次执行时间 10:22 ,B执行20次,最后一次执行时间10:25,C执行10次,最后一次执行时间 10:30
             需要牺牲语句时,B执行此最多,执行时间不是早所以牺牲的不是B,然而A与C的执行次数相同,但是A执行时间的时间最早,所以牺牲A
   7):ORALCE没有直接修改库高速缓存语句,只能通过更改共享池大小来间接修改库高速缓存大小     
 4.数据字典高速缓存:用于存放数据字典信息行
   1):当Oracle执行SQL时,会将相关的数据文件、表、索引、列、用户、其他的数据对象的定义和权限信息存放到数据字典高速缓存中。在此之后,如果需要相同的             相关数据,Oracle会从数据字典高速缓存中提取
   2):ORALCE没有直接修改数据字典高速缓存语句,只能通过更改共享池大小来间接修改库高速缓存大小 
5.需改共享池的大小语句    
  alter system set shared_pool_size= xxx m

来源:刘树旺great

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年10月8日
下一篇 2018年10月8日

相关推荐