一、目录介绍
第1部分 性能优化是怎么回事儿
第1章 了解性能优化
1.1 性能优化包括几个方面 2
1.1.1 性能计划 2
1.1.2 实例优化 2
1.1.3 SQL优化 4
1.2 哪些工具和特性可以帮助进行性能优化 5
1.2.1 自动性能调优特性 5
1.2.2 其他Oracle数据库工具 6
第2部分 性能优化的通用方法
第2章 性能优化的通用方法
2.1 Oracle性能提升方法 8
2.1.1 Oracle性能提升方法的步骤 9
2.1.2 性能概念建模的决策过程 10
2.1.3 Oracle系统中最常发生的十大错误 11
2.2 紧急情况下的性能提升方法 12
第3部分 性能优化三件事之一:设计者如何优化设计和开发
第3章 性能优化从设计和开发开始
3.1 Oracle方法论 16
3.2 理解投资选项 16
3.3 理解延展性 17
3.3.1 什么是延展性 17
3.3.2 系统延展性 17
3.3.3 阻碍延展性的因素 18
3.4 系统架构 19
3.4.1 硬件和软件组件 19
3.4.2 为需求配置匹配的系统架构 22
3.5 应用程序设计原理 24
3.5.1 简单的应用程序设计 24
3.5.2 数据建模 24
3.5.3 表和索引设计 25
3.5.4 使用视图 27
3.5.5 SQL执行效率 27
3.5.6 应用程序的实现 28
3.5.7 应用程序开发的趋势 29
3.5.8 负载测试、建模和实现 30
3.5.9 部署新的应用程序 32
第4部分 性能优化三件事之二:DBA如何合理使用资源而改善实例性能
第4章 资源有哪些
4.1 配置和使用内存 36
4.1.1 理解内存分配 36
4.1.2 配置和使用缓存 40
4.1.3 配置及使用共享池和大池 49
4.1.4 配置和使用重做日志缓存 68
4.1.5 PGA内存管理 70
4.1.6 管理服务器和客户端结果缓冲 82
4.2 I/O的配置和设计 92
4.2.1 关于I/O 92
4.2.2 I/O配置 93
4.2.3 数据库的I/O校准 100
4.2.4 使用Oracle Orion校准工具进行I/O校准 102
4.3 管理操作系统资源 113
4.3.1 理解操作系统性能问题 113
4.3.2 解决操作系统问题 116
4.3.3 理解CPU 117
4.3.4 解决CPU的问题 118
第5章 配置数据库如何使用资源
5.1 初始实例配置时的性能考虑 123
5.1.1 初始化参数 123
5.1.2 撤销(undo)空间的配置 124
5.1.3 指定重做日志文件的大小 125
5.1.4 创建后续的表空间 125
5.2 创建表和维护表时的性能考虑 126
5.2.1 表压缩 126
5.2.2 回收不用的空间 127
5.2.3 创建数据索引 127
5.3 共享服务器的性能考虑 128
5.3.1 使用与分配器相关的视图识别争用 128
5.3.2 识别共享服务器的争用 129
第6章 统计资源使用的效果
6.1 数据收集概览 131
6.1.1 数据库统计信息 132
6.1.2 操作系统统计信息 134
6.1.3 解释统计信息 136
6.2 AWR概览 137
6.2.1 快照 138
6.2.2 基线 138
6.3 AWR管理 141
6.3.1 管理快照 141
6.3.2 管理基线 143
6.3.3 管理基线模板 145
6.3.4 转移AWR数据 147
6.3.5 使用AWR视图 149
6.3.6 生成AWR报告 150
6.3.7 生成AWR时间段比较报告 155
6.3.8 生成活动会话历史报告 161
6.3.9 使用活动会话历史报告 165
第7章 实例优化:更合理地使用资源
7.1 自动化的性能诊断 169
7.1.1 自动数据库诊断监视器(ADDM)概览 169
7.1.2 设置ADDM 173
7.1.3 使用ADDM诊断数据库性能问题 173
7.1.4 查看ADDM信息 176
7.2 使用性能视图进行实例调优 176
7.2.1 实例调优步骤 177
7.2.2 解释Oracle数据库统计信息 185
7.2.3 等待事件统计信息 191
7.2.4 实时SQL监控 211
7.2.5 优化实例的恢复性能:快速启动错误恢复 215
第5部分 性能优化三件事之三:开发人员如何优化SQL执行计划
第8章 好的数据结构产生好的执行计划:索引和簇
8.1 理解索引的性能 224
8.1.1 优化逻辑结构 225
8.1.2 使用SQL Access Advisor优化索引 225
8.1.3 为索引选择列和表达式 225
8.1.4 选择混合索引 226
8.1.5 书写使用索引的语句 227
8.1.6 书写避免使用索引的语句 227
8.1.7 重建索引 228
8.1.8 精简索引 228
8.1.9 使用非唯一索引实现唯一性 228
8.1.10 使用启用的非验证性约束 229
8.2 为性能而使用基于函数的索引 230
8.3 为性能而使用分区索引 230
8.4 为性能而使用索引组织表 231
8.5 为性能而使用位图索引 231
8.6 为性能而使用位图连接索引 232
8.7 为性能而使用域索引 232
8.8 为性能而使用表簇 232
8.9 为性能而使用哈希簇 233
第9章 执行计划
9.1 查询优化器统计信息:选择执行计划的依据 235
9.1.1 查询优化器统计信息概览 235
9.1.2 管理“自动查询优化器统计信息收集” 236
9.1.3 手工收集统计信息 239
9.1.4 系统统计信息 244
9.1.5 管理统计信息 247
9.1.6 控制动态统计信息 255
9.1.7 查看统计信息 259
9.2 查询优化器:选择执行计划 262
9.2.1 查询优化器概览 262
9.2.2 查询优化器访问路径概览 274
9.2.3 连接概览 282
9.2.4 读懂执行计划 292
9.2.5 控制查询优化器的行为 294
9.3 解释计划:显示执行计划 297
9.3.1 理解EXPLAIN PLAN 297
9.3.2 PLAN_TABLE输出表 300
9.3.3 运行EXPLAIN PLAN 300
9.3.4 显示PLAN_TABLE的输出 301
9.3.5 阅读EXPLAIN PLAN的输出 302
9.3.6 使用EXPLAIN PLAN查看并行执行 303
9.3.7 使用EXPLAIN PLAN查看位图索引 306
9.3.8 使用EXPLAIN PLAN查看结果缓冲 307
9.3.9 使用EXPLAIN PLAN查看分区对象 307
9.3.10 PLAN_TABLE列 314
9.4 查询优化器提示:“大纲”的建筑材料,让查询优化器按指示行事 322
9.4.1 查询优化器提示概览 322
9.4.2 指定提示 328
9.4.3 使用视图的提示 332
9.5 计划稳定性:大纲,以“查询优化器提示”记录和存储计划 334
9.5.1 通过计划稳定性以保留执行计划 335
9.5.2 在查询优化器升级中使用计划稳定性 340
9.6 SQL计划管理器:“计划基线”,大纲的升级版 342
9.6.1 SQL计划基线概览 342
9.6.2 管理SQL计划基线 344
9.6.3 在SQL优化顾问中使用SQL计划基线 348
9.6.4 使用固定的SQL计划基线 349
9.6.5 显示SQL计划基线 349
9.6.6 SQL管理基地 350
9.6.7 导入和导出SQL计划基线 352
9.6.8 将存储大纲迁移到SQL计划基线 353
第10章 对SQL和执行计划进行跟踪与分析
10.1 端到端应用程序跟踪:得到客户端跟踪信息 363
10.1.1 为端到端应用程序跟踪启用和禁用统计信息的收集 364
10.1.2 查看为端到端应用程序跟踪收集的统计信息 365
10.1.3 启用和禁用端到端跟踪 365
10.1.4 查看启用的端到端跟踪 368
10.2 使用trcsess工具:组织跟踪信息 368
10.2.1 trcsess工具的语法 368
10.2.2 trcsess输出样例 369
10.3 了解SQL Trace和TKPROF 370
10.3.1 了解SQL Trace工具 370
10.3.2 了解TKPROF 370
10.4 使用SQL Trace和TKPROF 371
10.4.1 第1步:为跟踪文件管理设置初始化参数 371
10.4.2 第2步:启用SQL Trace工具 372
10.4.3 第3步:使用TKPROF格式化跟踪文件 373
10.4.4 第4步:解释TKPROF输出 376
10.4.5 第5步:保存SQL Trace工具统计信息 380
10.5 避免TKPROF解释错误 382
10.5.1 避免绑定变量陷阱 382
10.5.2 避免读一致性陷阱 383
10.5.3 避免模式陷阱 383
10.5.4 避免时间陷阱 384
10.6 TKPROF输出样例 385
10.6.1 TKPROF头样例 385
10.6.2 TKPROF正文样例 385
10.6.3 TKPROF总结样例 388
第11章 SQL优化:得到更好的执行计划
11.1 SQL优化概览 389
11.1.1 SQL优化介绍 389
11.1.2 优化目标 389
11.1.3 识别高负载SQL语句 390
11.1.4 自动SQL优化特性 392
11.1.5 开发高效的SQL语句 393
11.1.6 构建SQL测试用例 401
11.2 SQL调优顾问:针对SQL语句改善执行计划 403
11.2.1 自动调优优化器概览 403
11.2.2 管理自动SQL调优顾问 406
11.2.3 使用SQL调优顾问进行优化 410
11.2.4 管理SQL调优集合 416
11.2.5 管理SQL Profile 420
11.2.6 SQL调优视图 427
11.3 SQL访问顾问:针对整体负载改善执行计划 428
11.3.1 SQL访问顾问概览 428
11.3.2 使用SQL访问顾问 431
11.3.3 为“快速刷新”和“查询重写”优化物化视图 453
附录A 名词解释 462