盖国强等主编的《Oracle DBA手记》以手记形式记录了DBA们的工作点滴、经验分享;“SQL与SQL优化”,分别讲解了SQL的执行计划,SQL Profile的使用,以及Oracle中的NULL值解析;“内部原理与优化”,分别介绍了Oracle的索引分裂、TX锁等待、闩锁原理、逻辑读写、隐含参数与Latch原理等的内部操作。
《Oracle DBA手记》由多位数据库技术专家合著而成,融合了各行业DBA的工作经验与思考,包含了精心挑选的数据库性能优化与内部原理解析案例。内容涵盖“DBA手记”,以手记形式记录了DBA们的工作点滴、经验分享;“SQL与SQL优化”,分别讲解了SQL的执行计划,SQL Profile的使用,以及Oracle中的NULL值解析;“内部原理与优化”,分别介绍了Oracle的索引分裂、TX锁等待、闩锁原理、逻辑读写、隐含参数与Latch原理等的内部操作。
《Oracle DBA手记》的主要内容以原理分析、内部实践、故障解决为依据,将Oracle数据库的深层技术层剖缕析、抽丝剥茧地展示给读者。希望能够帮助读者加深对Oracle技术的认知和理解,并将这些技术应用到实践中去。
Part1 DBA 之路
0 人生就是如此—冯春培感悟之路
Part2 DBA 手记
1 杨廷琨的DBA手记
TRUNCATE 语句时间过长的诊断
隐式转换影响物化视图查询重写
批量修改数据后应收集统计信息
如何监测一个PL/SQL 过程的运行情况
一次RAC 环境性能诊断过程
数据泵功能灵活运用案例
2 姜龙的DBA 工作手记
同义词降低逻辑读优化一则
11gR2 中物化视图在真实案例中的应用
利用TimesTen 内存数据库大幅提升性能
参考文献
3 面向程序员的数据库访问性能优化法则
数据库访问优化法则简介
Oracle 数据库的两个基本概念
数据库访问优化法则详解
4 Linux 大内存页Oracle 数据库优化
案例的引入
操作系统中的CPU 使用分析
使用大内存页来解决问题
小结
Part3 SQL与SQL优化
5 SQL 执行计划解读与案例分析
得到SQL 的真实执行计划
执行计划的执行顺序
10g/11g 里执行计划的一些增强
绑定变量对执行计划的影响
10053 事件分析执行计划一例
看似正常的执行计划导致严重性能问
题的案例
监听连接时间过长案例外一则
6 使用SQL Profile 改变和稳定SQL 执行计划
SQL Profile 与Outline
SQL Profile 是什么
手工创建SQL Profile
使用SQL Profile 稳定SQL 语句的执行计划
使用SQL Profile 更改SQL 语句的执行计划
一个使用SQL Profile 的案例
7 Oracle 中的NULL 值解析
NULL 的基础概念和由来
NULL 的布尔运算的特点
NULL 的默认数据类型
空字符串‘’与NULL 的关系
NULL 和索引
NULL 的其他方面特点
Part4 内部原理与优化
8 B*Tree 索引中的数据块分裂
如何分裂
树的生长
存储参数
分裂事务控制
数据块分配
等待事件
附:10g 中如何构建“高”索引
9 事务队列等待(TX Enqueue)深入分析
记录锁
ITL 争用
索引争用
唯一性约束
位图索引维护
外键约束
其他争用
10 Oracle 的Latch 优化深入解析
Latch 相关的视图
Latch Free(闩锁释放)
Shared Pool Latch 的研究
row cache objects
Latch:row cache objects 案例
也许Bug 曾经来过
Oracle 的spare parameter
cursor: pin S wait on X 事件
为什么硬解析如此昂贵
Oracle 11g 的dc_object_ids
Row Cache 的进一步分析
总结
参考文献
11 Oracle 逻辑读写深入分析
全表扫描I
全表扫描II
全表扫描III
一致性读
当前模式
排序
索引扫描
12 隐含参数与Library Cache、Shared Pool Latch原理—— 一次由隐含参数引起性能问题的处理
案例之问题现象
问题分析
问题的解决
问题的验证
问题总结