当前位置: 首页 > news >正文

读书笔记:Oracle数据库连接与进程的奥秘

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

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

Oracle数据库连接与进程的奥秘

数据库背后的"工人团队"

想象Oracle数据库就像一个大型工厂,里面有各种"工人"(进程)在忙碌工作。这些工人主要分为三类:

  1. 服务器进程:直接处理我们提交的SQL请求,就像生产线上的操作工
  2. 后台进程:默默维护数据库运行的"后勤人员",负责写数据、清理垃圾等
  3. 从属进程:给其他工人打下手,协助完成特定任务

两种工作模式:专属服务 vs 共享服务

专属服务模式

就像VIP客户的私人管家:

  • 每个客户连接都有专属的服务进程
  • 一对一服务,响应快速直接
  • 适合高负载、长时间运行的操作
# 查看专属服务进程示例
$ sqlplus / as sysdba
SQL> select a.spid dedicated_server, b.process clientpidfrom v$process a, v$session bwhere a.addr = b.paddrand b.sid = sys_context('userenv','sid');

共享服务模式

更像是银行柜台服务:

  • 多个客户共享一组服务进程
  • 通过"调度员"(dispatcher)分配任务
  • 适合大量短时连接,节省资源
-- 配置共享服务示例
ALTER SYSTEM SET shared_servers=4;
ALTER SYSTEM SET dispatchers="(protocol=TCP)(dispatchers=3)";

连接与会话:不是一回事!

很多人容易混淆这两个概念:

  • 连接:就像电话线,是物理通道
  • 会话:相当于通话内容,是逻辑概念

有趣的是:

  • 一条电话线(连接)可以多次通话(会话)
  • 一次通话(会话)可能换多条电话线(如共享服务)
  • 电话线可以空闲(连接无会话)
-- 查看当前会话信息
SELECT username, sid, serial#, server, status 
FROM v$session 
WHERE username = USER;

实际应用中的智慧

  1. AUTOTRACE的秘密:当你在SQL*Plus中使用AUTOTRACE时,系统会自动创建第二个会话来监控统计信息,避免"观察行为影响被观察对象"。

  2. 共享服务的轮换机制:在共享服务模式下,你的SQL可能会被不同服务进程处理,就像银行不同柜员接力为你服务。

  3. 连接池技术:现代应用常用DRCP(数据库驻留连接池),兼具专属服务的性能和共享服务的资源效率。

理解这些机制,就像掌握了数据库的"工作流程",能帮助我们:

  • 更合理地设计应用连接方式
  • 更精准地诊断性能问题
  • 更有效地配置数据库资源

记住,数据库就像精密的钟表,每个齿轮(进程)都有其存在的意义,只有协同配合才能准确报时。

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

http://www.sczhlp.com/news/1983/

相关文章:

  • 7
  • 7.30随笔
  • 回溯算法实现全排列2
  • CF1456E XOR-ranges 题解
  • Feign - Charlie
  • 进程间通信(IPC)机制详解
  • TTS-1技术报告:基于Transformer的文本转语音模型
  • 兴业寰宇人生卡
  • 幻兽帕鲁服务器部署完整指南 - sherlock
  • 基于PaddleOCR的图像验证码快速识别实践
  • 每天阅读30分钟-阿里测试之道读书笔记(一)(二)
  • webapi第三天
  • PG系列:PostgreSQL连接内存开销测量
  • 高并发处理的Rust实现方案(9639)
  • HTTP请求处理的高效封装(3087)
  • 微服务架构的轻量级解决方案(6417)
  • 高性能路由系统的设计与实现(9854)
  • HTTP响应处理的灵活设计(3260)
  • 使用Prism Template Pack快速构建基于 Prism 的应用程序
  • 延迟优化的极致追求:毫秒级响应的秘密(4788)
  • 实时通信技术深度对比:WebSocket与SSE的最佳实践(9347)
  • 轻量级服务器架构的极致优化(4135)
  • httpx.InvalidURL: Invalid port
  • 高效实现 LRU 缓存机制:双向链表与哈希表的结合
  • 7月30日总结
  • 三极管原理
  • DAY26
  • 30天总结-第二十九天
  • sqlserver一些区别mysql基本命令
  • 壳的学习笔记