共享池 shared pool

发布时间:2020-08-07 20:24:13 作者:牛平
来源:ITPUB博客 阅读:109
定义:
共享池( shared pool )是位于SGA中的一块内存区域,主要用于缓存SQL的执行计划。之所以叫共享,是由于该块内存区域可以被多个会话共享同一个执行计划。即,如果有一个会话执行了SQL之后,会在shared pool 中生成一条该语句的执行计划,如果第二个会话使用了同样的或者类似的语句,就可以重复利用该条执行计划,从而实现执行计划共享。

特点:
1 共享池是位于SGA中的一块重要的内存区域,因为里面存放着SQL的执行计划以及结果还有一些其它类型的文件,比如控制文件等。

2  共享池是昂贵的,维护一个共享池所耗费的系统资源是巨大的,如果共享池太大,则会耗费更多的系统资源来维护它,如果太小,则出现不够用的情况,即本该共享的执行计划由于共享池太小,导致执行计划没有被共享,而是被重复的硬解析(hard parse)从而也会导致CPU资源浪费。

3 共享池类似于系统的缓存,是用LRU的策略来进行维护。

4 为了避免内存碎片,有着大量的小程序块。<= 4KB


查看共享池方法:

select sum(bytes)/1024/1024 mb from v$sgastat where pool = 'shared pool';

配置方法:

通常设置sga_target 后,内部的如shared pool java pool large pool db buffer cache redo log buffer 都会进行动态调整。因此设置sga_target 即可

alter system set sga_target=160m scope = spfile

重启数据库生效。
推荐阅读:
  1. Go36-33-临时对象池(sync.Pool)
  2. 怎么在nginx中实现共享内存

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

pool shared 共享

上一篇:Mesa 18.2.8发布啦

下一篇:MySQL主从复制原理及必备知识总结

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》