第1章 综述:优化是一个系统工程 1
1.1性能问题是一个系统工程 3
1.1.1考虑性能问题的不同阶段 3
1.1.2考虑性能问题的不同方面 4
1.1.3性能架构中的问题分类 5
1.2性能改进的工程方法 23
1.2.1不要希望一步到位! 23
1.2.2有时也能一步到位? 24
1.2.3性能改进工作流程 26
1.2.4建立性能分析流程图 28
1.2.5编程中应尽量避免的问题 30
1.2.6紧急事件性能处理 35
第2章 设计与优化:物理数据库结构设计 39
2.1数据库的特定运行平台 40
2.2物理设计与性能的关系 41
2.3应用框架与性能特征 43
2.4物理表设计的关注点 44
2.4.1从逻辑模型到物理模型 44
2.4.2物理数据库设计的范围 48
2.4.3规范化的设计 49
2.4.4反规范化设计 55
2.4.5另类反规范化 59
2.4.6是否反规范化 59
2.5索引的初始设计 60
2.5.1索引对象的基本结构 61
2.5.2索引的可选择性指标 62
2.5.3索引的双面性特征 62
2.5.4索引的类型 64
2.5.5索引的初始确定 69
2.5.6临时表的使用 71
第3章 部署与优化:准备基本运行环境 73
3.1性能问题在表象上的欺骗性 74
3.2理解数据库需要的系统资源 76
3.2.1 1O资源的使用 78
3.2.2内存资源的使用 82
3.2.3 CPU资源的使用 86
3.2.4解读内存与CPU状态 93
3.3小型机数据库部署准备 94
3.3.1 AIX的部署准备 94
3.3.2 HP-UX的部署准备 98
3.3.3 Solaris的部署准备 102
3.4 X86系统数据库部署准备 107
3.4.1 Linux系统的部署准备 107
3.4.2 Windows系统的部署准备 110
第4章 部署与优化:数据库的优化部署 112
4.1实例初始配置注意点 114
4.2数据库空间使用关注 119
4.3表空间的创建管理 130
4.4创建表时的性能因素 135
4.5数据导入与索引维护 144
第5章 实例优化:配置高效运行环境 145
5.1实例配置与缓存优化 146
5.1.1启用自动内存管理 148
5.1.2主机内存分配原则 152
5.1.3使用缓存顾问工具 155
5.1.4缓存的命中率问题 158
5.1.5缓存命中率分析 160
5.1.6精细化缓存的配置 161
5.2 SQL与缓存的使用 165
5.2.1缓存优化 165
5.2.2查看数据缓存内容 165
5.2.3共享池的效率检查 166
5.2.4重做日志缓存问题 173
5.3 PGA内存分配原则 175
5.4 Oracle虚拟化关注点 176
5.4.1 IO问题上的关注点 178
5.4.2内存问题上的关注点 178
5.4.3 CPU问题上的关注点 179
5.4.4故障恢复问题的解决 179
第6章 存储优化:配置高效存储环境 181
6.1 IO问题的表象与内涵 182
6.2存储介质的基础配置 183
6.2.1使用逻辑卷技术 184
6.2.2设定存储参数 187
6.3存储IO能力探究 197
6.3.1 Orion的安装 197
6.3.2 Orion的使用 198
第7章 综合部署:Oracle可靠性设置 201
7.1数据库设置的综合考虑 202
7.1.1设置数据库的内存使用 203
7.1.2数据库的进程使用设置 208
7.1.3设置数据库I/O模式 211
7.1.4设置数据库的归档模式 213
7.1.5使用闪回恢复区归档 214
7.1.6设置冗余控制文件 215
7.1.7保留控制文件信息 216
7.1.8设置联机重做日志文件 217
7.1.9设置联机重做日志组数 218
7.1.10设置数据块校验和检查 220
7.1.11打开性能时间统计 221
7.1.12表空间和段管理方式 221
7.1.13设定多临时表空间和组 222
7.1.14使用自动撤销管理 223
7.1.15 设置空间错误延时 223
7.1.16设置数据库闪回 224
7.2 RAC下的设置 225
7.2.1注册远程监听器的实例 226
7.2.2设置内部互联网络 226
7.3加密表数据 227
7.4加密表空间 231
第8章 对象优化:大表分区方式部署 232
8.1分区技术适用的范围 233
8.2分区技术的基本概念 234
8.2.1分区表的结构 234
8.2.2分区部署的收益 235
8.2.3分区部署的成本 236
8.2.4索引分区 237
8.3分区表的管理操作 238
8.3.1面向分区的管理 238
8.3.2面向分区的操作 238
8.3.3面向分区的恢复 239
8.4分区的技术实现 239
8.4.1基础分区的实现 240
8.4.2组合分区的扩展 246
8.4.3扩展分区技术 249
8.4.4分区表的数据压缩 254
8.4.5查看数据存储位置 255
8.4.6分区键数据的改变 256
8.4.7分区方式选择问题 257
8.4.8使用分区顾问工具 258
第9章 索引定义:索引设置与执行计划 260
9.1索引对象 261
9.2 Oracle优化器 263
9.2.1优化器的选择 264
9.2.2优化器的设置 266
9.2.3数据扫描问题 268
9.3索引的技术指标 285
9.3.1索引的选择性 285
9.3.2索引的簇化率 286
9.3.3索引二元高度 289
9.3.4直方图的使用 290
9.4索引与SQL优化 294
9.5避免索引不作为 296
9.5.1非等式运算 297
9.5.2 Null值的比对 298
9.5.3函数的调用 301
9.6创建虚拟的索引 303
9.7创建压缩的索引 305
9.8索引的使用监测 305
9.8.1创建不可视索引 305
9.8.2索引的可用状态 308
9.8.3监测索引的使用 309
9.9对分区表建立索引 310
第10章 实例效率:识别数据库内部作为 312
10.1研究数据库运行效率 313
10.1.1定义和量化性能 314
10.1.2统计分析的要素 314
10.1.3性能状态的统计 327
10.1.4其他相关统计 334
10.2操作系统的使用方法 338
10.2.1性能监视的手段 338
10.2.2使用vmstat 338
10.2.3使用iostat 341
10.2.4使用sar 345
10.2.5使用nmon命令 347
10.3调整计划探讨 349
第11章 优化践行:数据库层面的优化 351
11.1 Oracle自动统计 352
11.1.1统计数据的解释 354
11.1.2汇总的统计数据 355
11.2使用AWR 355
11.2.1在OEM中访问AWR 357
11.2.2用API管理AWR快照 359
11.2.3使用度量基线 360
11.2.4 AWR工作报告 362
11.3使用ADDM 363
11.3.1 ADDM内部结构 364
11.3.2 ADDM使用示例 365
11.3.3 ADDM环境设置 367
11.3.4 ADDM手工获得 367
第12章 优化践行:操作系统层面的优化 369
12.1平台的性能相关性 370
12.2分配和调度内存资源 372
12.2.1使用大的内存页面 373
12.2.2设定内存替换阈值 375
12.2.3设定内存空闲阈值 379
12.2.4对应设置应用内存 380
12.3设置系统进程资源 381
12.4系统IO资源的使用 382
12.4.1优化使用异步IO 382
12.4.2优化文件系统挂载 384
12.4.3优化应用IO模式 386
12.5关闭系统中无用的服务 387
12.6监控主机资源使用 387
12.6.1服务器性能监控 388
12.6.2分析系统的性能 389
写在最后 391