读书笔记:Oracle共享池:数据库内存管理的“心脏“

我们的文章会在微信公众号IT民工的龙马人生博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。

Oracle共享池:数据库内存管理的"心脏"

如果把Oracle数据库比作一个人,那么共享池(SGA)就相当于它的"心脏",负责为整个系统输送"养分"(内存资源)。这个"心脏"要不大不小刚刚好——太小了会供血不足,太大了又会增加负担。

共享池是干什么的?

想象一下,你每次去图书馆查资料:

  • 第一次查《三体》,需要花时间从书架上找
  • 第二次再查《三体》,图书管理员直接就从手边拿给你了

共享池就是Oracle的"管理员工作台",它会把:

  • 经常执行的SQL语句(就像热门书籍)
  • PL/SQL程序代码(像常用的工具书)
  • 数据库字典信息(像图书目录)
    都放在手边,随用随取。

最常见的"心脏病":不用绑定变量

这就像每次借书都要重新编目:

  • “我要借《三体》第一册”
  • “我要借《三体》第二册”
  • “我要借《三体》第三册”…

虽然都是《三体》,但因为编号不同,管理员每次都要重新查找。正确的做法应该是:

-- 不好的写法
SELECT * FROM books WHERE title='三体1';
SELECT * FROM books WHERE title='三体2';

-- 好的写法(使用绑定变量)
SELECT * FROM books WHERE title=:book_name;

真实案例:每天重启的数据库

有个客户的数据库就像个"心脏病患者":

  • 共享池设了1GB(比实际需要大10倍)
  • 每天必须重启一次,否则就会"心肌梗塞"
  • 还想买更多服务器"强心针"

我们给出的"治疗方案"很简单:

  1. 教会应用程序使用绑定变量
  2. 把共享池从1GB降到100MB
  3. 结果:系统跑得比原来还快,再也不用每天重启了

其他重要"器官"

除了共享池,Oracle还有几个关键内存区:

  1. 大池:专门处理"大件物流"

    • 共享服务器连接
    • 并行查询
    • 就像物流公司的"大件物品专用通道"
  2. Java池:Java程序的"VIP包厢"

    • 跑Java存储过程的地方
    • 专用服务器模式下很小
    • 共享服务器模式下需要更大空间
  3. 流池:数据复制的"快递中心"

    • 给GoldenGate/Streams等工具用
    • 默认会占用共享池10%空间
    • 用了这些工具记得单独设置
  4. 内存列存储:分析查询的"加速器"(需额外付费)

    • 像给每列数据都建了索引
    • 21c开始有免费基础版(限16GB)

健康小贴士

想让你的Oracle"心脏"健康跳动,记住:

  1. 一定要用绑定变量——这是最好的"保健品"
  2. 共享池不是越大越好——合适最重要
  3. 特殊功能(如Java、流复制)要配置专用内存区
  4. 定期检查"心电图"(监控共享池使用情况)

只要遵循这些原则,你的数据库就能拥有强健的"心脏",长久稳定地运行!

------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
优快云地址: (https://blog.youkuaiyun.com/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值