第一部分 基 础
第 1 章 性能问题 ............................................. 2
1.1 需要为性能做规划吗................................ 2
1.1.1 需求分析 ....................................... 2
1.1.2 分析与设计 ................................... 4
1.1.3 编码和单元测试............................ 4
1.1.4 集成和验收测试............................ 6
1.2 为性能而设计 ........................................... 6
1.2.1 缺乏数据库逻辑设计 .................... 6
1.2.2 实现通用表 ................................... 7
1.2.3 未使用约束加强数据完整性......... 7
1.2.4 缺乏数据库物理设计 .................... 7
1.2.5 未正确选择数据类型 .................... 8
1.2.6 未正确使用绑定变量 .................... 8
1.2.7 未利用数据库高级特性 ................ 8
1.2.8 未使用 PL/SQL 进行以数据为
中心的处理 ................................... 9
1.2.9 执行不必要的提交........................ 9
1.2.10 持续打开和关闭数据库连接....... 9
1.3 你真的面临性能问题吗............................ 9
1.3.1 系统监控 ......................................10
1.3.2 响应时间监控 ..............................10
1.3.3 强迫性调优障碍...........................10
1.4 如何处理性能问题 ..................................11
1.4.1 业务视角和系统视角 ...................11
1.4.2 问题的编录 ..................................12
1.4.3 解决问题 ......................................12
1.5 小结 .........................................................15
第 2 章 关键概念 ............................................16
2.1 选择率和基数 ..........................................16
2.2 什么是游标..............................................17
2.3 游标的生命周期 ......................................18
2.4 解析的工作原理 ......................................20
2.4.1 可共享游标 ..................................22
2.4.2 绑定变量......................................25
2.5 读写数据块..............................................35
2.6 检测 .........................................................36
2.6.1 应用程序代码 ..............................37
2.6.2 数据库调用 ..................................39
2.7 小结 .........................................................42
第二部分 识 别
第 3 章 分析可重现的问题...........................45
3.1 跟踪数据库调用 ......................................45
3.1.1 SQL 跟踪 .....................................45
3.1.2 跟踪文件的结构 ..........................57
3.1.3 使用 TRCSESS ............................59
3.1.4 探查器..........................................60
3.1.5 使用 TKPROF..............................60
3.1.6 使用 TVD$XTAT ........................70
3.2 探查 PL/SQL 代码...................................79
3.2.1 使用 DMBS_HPROF ...................79
3.2.2 使用 DBMS_PROFILER .............85
3.2.3 触发探查器 ..................................89
3.3 小结 ......................................................